比较2个SQL表,如果数据不匹配,则在第3个表

时间:2015-12-30 19:36:31

标签: sql sql-server ssms

有没有办法比较3个sql表(A,B,C)?哪个A和B的列有标签,A中的TimeStamp和B中的Name,ScheduledTime。我需要比较这两列,如果它们不匹配,则将数值1放入表格中名称旁边的第2列C.我对SQL很新,但不确定这是否可行。 (使用SSMS)

表A看起来像这样。

Name   |   Time                           
-----------------
John   |   7:00AM
Joe    |   7:07AM
Tim    |   7:25AM

表B看起来像这样。

Name   |   Schedule
--------------------
John   |   7:00AM
Joe    |   7:00AM
Tim    |   7:00AM

表C应如下所示。

Name   |   Number
-----------------
John   |   0
Joe    |   1
Tim    |   1

1 个答案:

答案 0 :(得分:2)

对于您的样本数据,以下内容将起作用:

select a.name, (case when a.time = b.schedule then 0 else 1 end) as number
into c
from a join
     b
     on a.name = b.name;

目前尚不清楚这是否是一般解决方案,但它适用于所提供的数据。

编辑:

SQL Fiddle现在似乎没有运行MS SQL代码。但here是一个SQL小提琴,我有信心会证明上述情况有效。