Query
選擇具有相同值的一列並檢查另一列的值
我有一個具有以下結構的表(為簡潔起見,省略了其餘列):
+------------+-------+ | Cust_ID | Status| +------------+-------+ | 312 | A | | 312 | D | | 312 | D | | 345 | A | | 345 | D | | 345 | A | | 678 | D | | 678 | D | | 678 | D | +------------+-------+
我們可以觀察到相同的 s在不同的行中
Cust_ID
有多個。Status
現在我想選擇Cust_ID
所有Status
行都是s 的 sD
。所以在上述情況下,Cust_ID
678
應該列出。有人可以幫我寫這樣的查詢嗎?
我只使用 T-SQL,但我不認為下面使用的任何內容都特定於 SSMS:
SELECT DISTINCT Cust_ID FROM Tbl t WHERE Status = 'D' AND NOT EXISTS (SELECT * FROM Tbl WHERE Status <> 'D' AND Cust_ID = t.Cust_ID)
select cust_ID from table group by cust_ID having max(status) = 'd' and min(status) = 'd'