在sql中按日期比较两个相同的表数据

在sql中按日期比较两个相同的表数据,sql,sql-server-2008,tsql,Sql,Sql Server 2008,Tsql,如何编写SQL语句来比较当前日期和昨天的日期。表具有相同的列。我需要检查选择的两个日期在哪个列中有哪些数据不同,并显示两个表之间的变化 这是我启动的存储过程 CREATE PROCEDURE [dbo].[usp_CompareNetworksandRatings] @media_month_id smallint, @rating_category_id tinyint, @rate_date datetime AS BEGIN S

如何编写SQL语句来比较当前日期和昨天的日期。表具有相同的列。我需要检查选择的两个日期在哪个列中有哪些数据不同,并显示两个表之间的变化

这是我启动的存储过程

    CREATE PROCEDURE [dbo].[usp_CompareNetworksandRatings]
       @media_month_id smallint,
       @rating_category_id tinyint,
       @rate_date datetime
  AS
  BEGIN
  SET NOCOUNT ON;

  SELECT DISTINCT
       nn.nielsen_network_id,
       nn.code,
       nn.name
  FROM
       daily_ratings dr (NOLOCK)
  JOIN media_months mm (NOLOCK) ON mm.id=dr.media_month_id
        AND mm.id=@media_month_id
  JOIN uvw_nielsen_network_universes nn (NOLOCK) ON nn.nielsen_network_id=dr.nielsen_network_id
        AND nn.start_date<=mm.start_date AND (nn.end_date>=mm.start_date OR nn.end_date IS NULL) 
  WHERE
      dr.rating_category_id=@rating_category_id
      AND dr.media_month_id=@media_month_id
      AND dr.rating_date=@rate_date
  ORDER BY
      nn.code
创建过程[dbo]。[usp\u CompareneWorksandRatings]
@媒体\u月\u id smallint,
@额定值、类别、标识,
@日期时间费率
作为
开始
不计数;
选择不同的
nn.nielsen_网络id,
nn.code,
nn.name
从…起
每日评级dr(NOLOCK)
在mm.id=dr.media\u month\u id上加入媒体月数mm(NOLOCK)
和mm.id=@media\u month\u id
在nn上加入uvw_nielsen_network_universes nn(NOLOCK)。nielsen_network_id=dr.nielsen_network_id
和nn.start_date=mm.start_date或nn.end_date为空)
哪里
dr.rating_category_id=@rating_category_id
和dr.media\u month\u id=@media\u month\u id
和dr.rating_date=@rate_date
订购人
nn.code

要检查的每一列都需要一个case构造。大概是这样的:

 select case when t2.f1 <> t1.f1 then 'yes' else 'no' end f1_changed
选择t2.f1 t1.f1时的情况,然后选择“是”,否则选择“否”结束f1\u