Sql-Server
根據同一表中的另一個值從具有特定值的表中選擇行
我需要能夠選擇僅具有 tr_type 7 的所有 Userpin,但如果其他行中有 tr_type 7 和 8,則忽略 7 和 8 範例:
Userpin TrDate Time1 Tr_type 4555 12-02-2020 7:30 7 4555 12-02-2020 14:30 8 6985 12-02-2020 7:34 7 9854 12-02-2020 7:15 7 8542 12-02-2020 7:16 7 8542 12-02-2020 14:40 8
使用這個數據集,我正在尋找查詢以獲取當天只有 tr_type 等於 7 的 userpin 的數據,我想要這樣的結果:
Userpin TrDate Time1 Tr_type 6985 12-02-2020 7:34 7 9854 12-02-2020 7:15 7
我使用該查詢來獲取當天的數據
select UserPIN ,TrDate,Time1,Tr_Type from mytable where UserPIN in (6985,9854,4555,8542,4062,7070,4189,4197) and TrDate=CAST(GETDATE() AS DATE)
這似乎是一個簡單的查詢,但我發現自己靠牆了。以合理有效的方式完成此任務的最佳方法是什麼?
SELECT t1.* FROM mytable t1 WHERE t1.Tr_type = 7 /* AND another conditions by Userpin list, TrDate, etc. */ AND NOT EXISTS ( SELECT NULL FROM mytable t2 WHERE t1.Userpin = t2.Userpin /* AND another conditions */ AND t2.Tr_type = 8 )