我正在处理医疗数据并列出了索赔号。这些索赔号码具有与每个索赔相关联的多个收入代码。
我试图消除任何REVENUE_CD
为450的声明。
然而,结果仍包括具有该收入代码的索赔。它似乎是返回450与其他代码一起的声明。我需要它来查看所有的收入代码,并消除多个代码中包含450的索赔。
SELECT claim_num
FROM claims c
WHERE revenue_cd NOT IN ('0450')
结果:
ICN_NUM REVENUE_CD
1 1335 0352
2 1335 0300
3 1335 0252
4 1335 0306
5 1335 0324
6 1335 0272
7 1335 0762
8 1335 0305
9 1335 0450
10 1335 0637
非常感谢任何帮助。
答案 0 :(得分:2)
这不是正确的方法。
一种方法是
SELECT claim_num
FROM claims c
GROUP BY claim_num
HAVING COUNT(CASE
WHEN revenue_cd = '0450' THEN 0
ELSE 1
END) = 0
或另一个
SELECT claim_num
FROM claims
EXCEPT
SELECT claim_num
FROM claims
WHERE revenue_cd = '0450'
或者您可以将相关子查询与NOT IN
或NOT EXISTS
同时使用
SELECT c1.claim_num
FROM claims c1
WHERE c1.claim_num NOT IN (SELECT c2.claim_num
FROM claims c2
WHERE c2.revenue_cd = '0450'
AND c2.claim_num IS NOT NULL)