次の2つのクエリの結果が3番目のクエリの結果に加算されない理由を誰かが知っていますか?
SELECT COUNT(leadID) FROM leads
WHERE makeID NOT IN (SELECT uploadDataMapID FROM DG_App.dbo.uploadData WHERE uploadID = 3 AND uploadRowID = 1)
AND modelID NOT IN (SELECT uploadDataMapID FROM DG_App.dbo.uploadData WHERE uploadID = 3 AND uploadRowID = 2)
SELECT COUNT(leadID) FROM Leads
WHERE makeID IN (SELECT uploadDataMapID FROM DG_App.dbo.uploadData WHERE uploadID = 3 AND uploadRowID = 1)
OR modelID IN (SELECT uploadDataMapID FROM DG_App.dbo.uploadData WHERE uploadID = 3 AND uploadRowID = 2)
SELECT COUNT(leadID) FROM Leads
最初のクエリは、必要なカウントです。2つ目は、DG_App.dbo.uploadDataテーブルの内容に基づいて抑制されたレコードの数をユーザーに通知することです。3番目のクエリは、すべてのレコードの単純なカウントです。
これらを実行すると、クエリ1の結果+クエリ2の結果は、テーブル全体の数よりも約46Kレコード少なくなります。WHEREステートメントを()でグループ化してみましたが、カウントはまったく変わりませんでした。
これはMSSQLServer2012です。
これに関するどんな入力も素晴らしいでしょう。
ありがとう