我有一张桌子帐号:
我只想要只有帐户类型'分类帐'或'借记'的practiceid。如果他们有+其他任何我不想要它。
不知怎的,这并没有削减它:
SELECT PracticeId, accounttype
FROM Account
WHERE AccountType IN('debit' , 'Ledger')
我只应该练习100和105。
我如何才能获得一个仅提供只包含分类帐或借记卡或两者的实践的查询?
答案 0 :(得分:2)
您可以使用类似以下内容的内容来过滤同时包含practiceId
和debit
的{{1}},但之后使用WHERE子句删除任何包含其他内容的ledger
practiceIds
:
accountTypes
见SQL Fiddle with Demo。这将返回:
SELECT PracticeId, accounttype
FROM Account
WHERE AccountType IN('debit' , 'Ledger')
and practiceid not in (select practiceid
from account
where AccountType not IN('debit' , 'Ledger'));
答案 1 :(得分:0)
单程
SELECT PracticeId
FROM Account
GROUP BY PracticeId
HAVING MAX(CASE WHEN AccountType IN( 'debit', 'Ledger' ) THEN 0 ELSE 1 END) = 0
答案 2 :(得分:0)
我建议您首先选择具有不同accouttype的所有行,然后不要使用:
SELECT PracticeId, accounttype FROM Account
WHERE id NOT IN(
SELECT id FROM Account
WHERE accounttype NOT in('debit' , 'Ledger')
)