SQL-如何返回某些行与给定列表匹配的整行集

SQL-如何返回某些行与给定列表匹配的整行集,sql,sql-server,Sql,Sql Server,假设有一张病历表。每次访问都有一个唯一的ID,但由多行组成,对应于为访问提供的各种代码/服务。 例如,对于每个唯一的过程代码“123”、“456”和“789”,可能有3行claimID“John”;15行“Jane”和代码;“大卫”6行 我有一个50个唯一程序代码的列表,并希望返回索赔行的整个集合(即“John”的所有行),其中这50个代码的任何组合都已与另一个代码(而不是与它们自己)记账(“123”与“321”,而不是“123”与“123”)。如果“123”在我的50个代码列表中,但“456”

假设有一张病历表。每次访问都有一个唯一的ID,但由多行组成,对应于为访问提供的各种代码/服务。
例如,对于每个唯一的过程代码“123”、“456”和“789”,可能有3行claimID“John”;15行“Jane”和代码;“大卫”6行

我有一个50个唯一程序代码的列表,并希望返回索赔行的整个集合(即“John”的所有行),其中这50个代码的任何组合都已与另一个代码(而不是与它们自己)记账(“123”与“321”,而不是“123”与“123”)。如果“123”在我的50个代码列表中,但“456”和“789”不在列表中,则不应返回“John”声明集,因为我的50个代码中只有一个代码存在。我希望这是有道理的

Positive Result Codes
123
321
987
查询应返回所有5行(123和321)和所有4行(123和987)

请尝试以下代码:

;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);
请尝试以下代码:

;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);

请以表格形式添加示例数据和预期输出。对不起,我是全新的。我没有看到任何表的降价。这里有一篇很好的文章解释了如何发布这类内容。使用4个空格组成一行代码样式。或者在问题编辑器中标记行并单击“代码”按钮。例如,请看这篇文章:请以表格形式添加示例数据和预期输出。对不起,我是全新的。我没有看到任何表的降价。这里有一篇很好的文章解释了如何发布这类内容。使用4个空格组成一行代码样式。或者在问题编辑器中标记行并单击“代码”按钮。例如,请参阅以下帖子:
;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);