使用SQL Server 2008查找2个结果集之间的差异

时间:2014-05-12 10:37:01

标签: sql sql-server

我需要帮助来计算两个结果集之间的差异。

数据集看起来像:

表1:submissions

SubmissionID | TransID | Code
-------------------------------
s1              u1      code1
s1              u2      code2
s1              u3      code3
s2              u4      code1
s2              u5      code3
s3              u6      code1

表2:resubmissions

resubmissionID | SubmissionID | TransID | Code
-----------------------------------------------
s11             s1              u1      changed1
s11             s1              u2      changed2
s22             s2              u4      changed1
s22             s2              u5      code3
s33             s3              u6      code1

预期的结果是使用更改的代码计算TransID,请注意它可能包含未更改的代码,我正在使用SQL Server 2008

目前我写了一个查询来加入这两个表:

select * from 
submissions s inner join resubmissions r
on s.submissionid = r.resubmissionid
and s.TransID = r.TransID 
and s.code <> r.code

我们可以用case来检查代码是否发生了变化,但是它显示了冗余值

submissionid    claimcode   type    code        ResubmissionID  submissionid    claimcode   type    code
7863            OCR         S       E86.0   18697           7863            OCR         P       K52.9
7863            OCR         P       K52.9   18697           7863            OCR         S       E86.0

请咨询

此致

1 个答案:

答案 0 :(得分:0)

尝试以下查询:

SELECT TransID
来自提交的文件 WHERE代码&lt;&gt; (SELECT代码FROM重新提交WHERE submissions.TransID = resubmissions.TransID)

注意:此查询仅列出所有已更改代码的TransID。 (即u1,u2和u4)