【问题标题】:Join two tables and display records only if 2nd table does not have a matching date仅当第二个表没有匹配的日期时才连接两个表并显示记录
【发布时间】:2017-10-04 00:56:17
【问题描述】:

我有两个要加入的表。我希望能够加入 ClientID,并且只显示那些 DateA 与 DateB 不匹配的记录。这是我的表的结构

tbl1
CLientID             DateA
17                   08/01/2016
19                   06/27/2016
21                   12/1/2015


tbl2
RcrNo            ClientID           DateB
1                17                 08/01/2016
2                19                 06/27/2016
3                21                 12/22/2015

期望的结果:

ClientID             Date
21                   12/22/2015

可以看出,ClientID 21 是 3 个中唯一一个 DateA 与 DateB 不匹配的客户端。我怎么能像这样加入他们?

【问题讨论】:

    标签: sql sql-server join


    【解决方案1】:

    使用JOINWHERE 子句

    SELECT *
    FROM   table1
           JOIN table2 ON table1.ClientId = table2.ClientId
    WHERE  table1.date <> table2.date;
    

    【讨论】:

      【解决方案2】:

      你可以使用except:

      select clientid, dateb
      from tbl2
      except
      select clientid, datea
      from tbl1;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-06-14
        • 2017-08-31
        • 1970-01-01
        • 2023-03-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多