假设有一张医疗记录表。每次访问都有一个唯一的ID,但由几行代表,这些行对应于为访问而呈现的各种代码/服务 例如,对于每个唯一的过程代码“123”,“456”和“789”,可以有3行具有claimID“John”;带有代码的“Jane”15行; 6行为“大卫”......
ID Code
John 123
John 456
John 789
Jane 123
Jane 456
Jane 789
Jane 321
Jane 654
David 123
David 456
David 789
David 987
我有一个包含50个唯一程序代码的列表,并希望返回整个设置的声明行(即所有行的“John”),其中任何组合50个代码已与另一个代码一起收费,但不是自己(“123”代表“321”,而不是“123”代表“123”)。如果“123”在我的50列表中,但“456”和“789”不在,则不将返回“John”声明集,因为我的50个代码中只有一个存在。我希望这是有道理的。
Positive Result Codes
123
321
987
查询应返回所有5个Jane行(123和321)和所有4个David行(123& 987)。
ID Code
Jane 123
Jane 456
Jane 789
Jane 321
Jane 654
David 123
David 456
David 789
David 987
答案 0 :(得分:0)
试试这段代码:
;WITH Visits as (
SELECT claimID,COUNT(DISTINCT Code) as CNT FROM tbl_Visits
WHERE Code in (123,123,321,987)
GROUP by claimID
HAVING COUNT(DISTINCT Code) > 1
)
SELECT * FROM tbl_Visits
WHERE claimID in (SELECT claimID FROM Visits);