我有一個存儲Invoice詳細信息的數據庫。正如您所期望的,發票的每個細節都列在數據庫中。一些樣本信息:使用In從第二個查詢中提取結果
Invoice# Service_Type Detail_Code
1234 1 AB
1234 2 DF
1234 5 ER
1235 1 AB
1236 1 AB
1236 2 DF
1237 1 AB
1238 1 AB
1239 1 AB
1239 3 DZ
我想編寫一個查詢計算服務中,客戶有「1」的服務類型,並沒有DZ或DF的詳細信息代碼的數量。所以在這種情況下,我的查詢結果是:
"3"
它將計數發票號碼:
1235
1237
1238
我不太能拿到。這裏是我的查詢:
SELECT Invoice_Number
FROM Invoice_Detail_Tb
WHERE (Invoice_Number IN (SELECT Invoice_Number
FROM Invoice_Detail_Tb AS Invoice_Detail_Tb_1
WHERE (Service_type = '1')
AND (Invoice_Date BETWEEN @startdate AND @enddate)
AND (Store_Number = @storenumber)))
AND (Detail_Code NOT IN ('DF', 'DZ'))
當我運行此查詢,我不斷地得到「6」,這是與SERVICE_TYPE「1」服務的總數。我錯過了什麼?
我嘗試使用「除「,但它是SQL的舊版本,使用」Except「時遇到」不受支持「異常 – Shmewnix
你的dbms是什麼? –
SQL Server 2000 – Shmewnix