检查其中一个表中缺少的帐号

时间:2013-07-30 17:42:37

标签: sql

我在t04表中缺少q04表中的帐号。

如何显示缺少的帐号。我只想要来自T01的批号270864和来自q04的importid 680

t01表数据

account numbet1 2 3 7 8

Batch numbers 270864

q04表数据

account numbers 1 2 3 4 5 6 7 8 

ImpoortID 680

以下是我尝试使用但没有结果的代码;

SELECT *
FROM [DS_PROD].[dbo].[T01_TransactionMaster] t01
WHERE  t01.BatchNumber = '270864' AND t01.AccountNumber 
NOT EXISTS (SELECT * FROM [DS_PROD].[dbo].[Q04_ImportDetails] q04                                           
            WHERE q04.ImportId = 680)

2 个答案:

答案 0 :(得分:0)

您的WHERE条款已关闭。你应该做t01.AccountNumber NOT IN而不是NOT EXISTS。

同样基于您提供的数据,您应该查询表Q04,其中AccountNumbers不在表T01中。不是相反。 T01中的所有AccountNumbers都在Q04(1,2,3,7,8)中。您希望查询返回(4,5,6)

SELECT *
FROM [DS_PROD].[dbo].[Q04_ImportDetails] q04
WHERE Q04.ImportId = 680 AND q04.AccountNumber NOT IN 
    (SELECT AccountNumber 
    FROM [DS_PROD].[dbo].[T01_TransactionMaster] t01 
    WHERE t01.BatchNumber = '270864')

答案 1 :(得分:0)

尝试

SELECT *
FROM [DS_PROD].[dbo].[T01_TransactionMaster] t01
WHERE  t01.BatchNumber = '270864' AND t01.AccountNumber 
NOT EXISTS (SELECT **ACCNTNUMBER** FROM [DS_PROD].[dbo].[Q04_ImportDetails]      q04                                           
        WHERE q04.ImportId = 680)