Множество критериев оставил соединение, как узнать, какие критерии не соблюдаются - PullRequest
0 голосов
/ 31 октября 2018

У меня есть следующий код для левого соединения при четырех условиях, которые должны быть выполнены: Id, Contract_Type, Sub_Contract_Number и Percentage.

У меня есть следующее заявление Left Join:

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+ различными идентификаторами, и мне нужно, какое условие не выполняется, чтобы я мог определить разницу между двумя таблицами. Кроме того, есть ли способ установить диапазон в пределах одного десятичного знака процента, чтобы он не отображался как разница между двумя таблицами из-за разницы в процентах в один процент. Спасибо

1 Ответ

0 голосов
/ 31 октября 2018

На вторую часть вашего вопроса можно ответить с помощью простой модификации вашего запроса:

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 ;

Для первой части вашего вопроса я бы предложил вам задать еще один вопрос. Обеспечить желаемых результатов . Непонятно, что вы пытаетесь сделать.

...