首页 > 解决方案 > 多个条件离开加入,如何知道哪些条件没有被满足

问题描述

对于需要满足的四个条件(Id、Contract_Type、Sub_Contract_Number 和 Percentage)的左连接,我有以下代码。

我有以下左连接语句:

select a.* from table_1 as a
left join table_2 as b
on a.id = b.id
and a.Contract_Type = b.Contract_Type
and a.Sub_Contract_Number = b.Sub_Contract_Number
and a.Percentage = b.Percentage

样本数据:

Table 1
1    G7   12   .40
1    G7   13   .60

Table 2
1    G7   18   .39
1    G1   13   .61

如何确定左连接不满足哪个条件?我有一个包含 9000 多个不同 id 的庞大数据集,需要什么条件不满足,这样我才能确定两个表的区别。此外,有没有办法将范围设置在百分比的小数点后一位之内,因此由于百分之一的百分比差异,它不会显示为两个表之间的差异。感谢

标签: sqlsql-serverleft-joinmultiple-conditions

解决方案


您的问题的第二部分可以通过对查询的简单修改来回答:

select a.*
from table_1 a left join
     table_2 b
     on a.id = b.id and
        a.Contract_Type = b.Contract_Type and
        a.Sub_Contract_Number = b.Sub_Contract_Number and
        a.Percentage >= b.Percentage - 0.01 and
        a.Percentage <= b.Percentage + 0.01 ;

对于你问题的第一部分,我建议你再问一个问题。提供期望的结果。目前尚不清楚您要做什么。


推荐阅读