比较两个表(一个表有哪个表,另一个没有)

时间:2014-09-12 11:35:26

标签: sql sql-server sql-server-2008

我有两张名为FICA11的桌子,FICA7。现在FICA7是客户的旧记录,而fica11是新记录,我们称之为维护记录。

我每月需要做的是查看FICA11中有哪些新文档不在fica7表中(维护记录)

示例数据FICA7

ID Number    Document_Type
2456525425625,other
2456525425625,POA
2456525425625,POA
2456522456585,other
2456522456585,id
1245879566554,other
1245879566554,ID

示例数据FICA11

    ID Number    Document_Type
    2456525425625,other
    2456525425625,id
    2456525425625,POA
    2456522456585,other
    2456522456585,id
    1245879566554,poa
    1245879566554,ID

现在我必须看到的是我们现在有多少来自FICA11的新ID我们在FICA7中没有这个ID

来自上面的例子。

New ID    1           
New POA   1
New Other 1

2 个答案:

答案 0 :(得分:3)

使用NOT EXISTS + Group By + Count

SELECT Document_Type, Count(*) AS [Count]
FROM FICA11 f11
WHERE NOT EXISTS
(
    SELECT 1 FROM FICA7 f7
    WHERE f11.Number = f7.Number
      AND f11.Document_Type = f7.Document_Type
)
GROUP BY Document_Type

答案 1 :(得分:0)

使用左外部的替代方案: -

SELECT F11.Document_Type, count(f11.document_type) - Count(f7.document_type) AS Count
FROM FICA11 f11 LEFT OUTER JOIN FICA7 f7 ON f11.ID_Number = f7.ID_Number AND f11.Document_Type = f7.Document_Type
GROUP BY f11.Document_type