【问题标题】:Find the differences between 2 result sets using SQL Server 2008使用 SQL Server 2008 查找 2 个结果集之间的差异
【发布时间】:2014-06-29 16:23:01
【问题描述】:

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

数据集看起来像:

表一: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

请指教

问候,

【问题讨论】:

  • 向我们展示到目前为止您的努力!这不是为我编写代码服务 - 如果您有任何需要和你被卡住了......
  • 改成on s.submissionid = r.submissionid
  • 它在真实数据中不起作用,它显示结果扭曲(参见更新),而这两行没有改变

标签: sql sql-server


【解决方案1】:

试试下面的查询:

选择 TransID
来自提交
WHERE 代码 (SELECT Code FROM resubmissions WHERE submissions.TransID = resubmissions.TransID )

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-17
    • 1970-01-01
    • 1970-01-01
    • 2017-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多