我堅持自己的想法,無法找到解決方案。
我有一個包含許多欄位的專案表。但本次討論的關鍵是 ID、STATUS、CATEGORY。
我想查詢該表并僅在滿足所有條件時才回傳結果。我不在乎回傳了多少記錄,我只是在檢查我得到的是記錄結果還是空結果。
邏輯:如果所有服務專案都完成了,還有升級專案沒有完成。
例如下表
ITEM ID STATUS CATEGORY
10 COMPLETED SERVICE
20 OPEN SERVICE
30 COMPLETED UPGRADE
對于上述情況^我想回傳 0 條記錄,因為并非所有條件都滿足。
另一個例子
ITEM ID STATUS CATEGORY
10 COMPLETED SERVICE
20 OPEN SERVICE
30 COMPLETED UPGRADE
40 OPEN UPGRADE
對于上述情況^我想回傳 0 條記錄,因為并非所有條件都滿足。
知道如何實作這一目標嗎?SQL Server 2016/2019
干杯!
uj5u.com熱心網友回復:
聽起來你想要的可以使用 2 個EXISTS條件來實作
SELECT *
FROM tbl
WHERE NOT EXISTS -- ALL Service items are completed
(
SELECT *
FROM tbl
WHERE Category = 'SERVICE'
AND Status <> 'COMPLETED'
)
AND EXISTS -- there are Upgrade items that are not completed
(
SELECT *
FROM tbl
WHERE Category = 'UPGRADE'
AND Status <> 'COMPLETED'
)
uj5u.com熱心網友回復:
您可以進行簡單查詢,如下所示:
SELECT [Item ID], [Status],[Category]
FROM TableName
WHERE Status = 'COMPLETED' AND Category = 'SERVICE'
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/407386.html
標籤:
上一篇:管理貨幣列的百分比
下一篇:如何獲取日期屬性最新的每條記錄?
