试图找到进行此操作的最佳方法,出于某种原因,这确实让我感到困惑。
我有这样的数据:
transaction_id(pk) decision_id(pk) accepted_ind
A 1 NULL
A 2 <blank>
A 4 Y
B 1 <blank>
B 2 Y
C 1 Y
D 1 N
D 2 O
D 3 Y
我正在尝试将查询写入:
我试过了:
1.使用逻辑“或”来拉记录,不断得到重复。
2. 使用联合和除了但不能完全正确地降低逻辑。
任何帮助表示赞赏。我不知道为什么这让我如此受挫!
亚当
最佳答案
试试这个。基本上 WHERE
子句说:
接受的地方 = 'Y'
或者
此交易没有接受的行,并且 decision_id = 1
SELECT Transaction_id, Decision_ID, Accepted_id
FROM MyTable t
WHERE Accepted_ind = 'Y'
OR (NOT EXISTS (SELECT 1 FROM MyTable t2
WHERE Accepted_ind = 'Y'
and t2.Transaction_id = t.transaction_id)
AND Decision_id = 1)
关于sql - 卡在这个工会/除了,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7675681/