2017-02-11 72 views
0

我有两个表,其中应该包含相同的信息。比较两个SQL表来找出缺少的东西。

表1 - 发票报头(客户名称等) 表2 - 发票行(股票参考等)

表1基本上是表2的各匹配线的概要我知道表1是正确的和包含所有的数据。

这些匹配的键将是日期,发票编号和帐号。

有没有办法看到表2中缺少什么?

+0

您能分享您的餐桌结构吗? – Mureinik

回答

0

您应该使用Left Outer Join来显示左表中的内容,但不是右边的内容。在这种情况下,左表是您的标题,右是发票行。 MSDN页面上有很多示例,并且谷歌查询出现了很多结果。 (尽量不要在这里提供一个例子,因为这是从经验中学习的真棒机会。)

+0

谢谢我会让你知道我是怎么做到的。 –

0

是的,你可以使用:

Select * from table 1 
minus 
Select * from table 2; 

或者你可以使用

SELECT column1 [, column2 ] 
FROM table1 [, table2 ] 
[WHERE condition] 

EXCEPT 

SELECT column1 [, column2 ] 
FROM table1 [, table2 ] 
[WHERE condition] 

的SQL EXCEPT子句/运算符用于组合两个SELECT语句,并返回第一个SELECT语句中不由第二个SELECT语句返回的行。