Member 12336474 Ответов: 1

Как сравнить две таблицы


Рассмотрим следующие две таблицы.
ТАБЛИЦА А
Order  invoice  date       quantity  cust_code
111     45     20/08/2017   9          abc
112     32     21/08/2017   4          abc
113     42     22/08/2017   5          abc
114     49     20/08/2017   5          abc

ТАБЛИЦА В
Order   date       quantity
 111     20/08/2017   3
 111     20/08/2017   6
 113     22/08/2017   5
 49      20/08/2017   5
 112     21/08/2017   4


Теперь в таблице B значения в столбце Order могут быть либо столбцом order из таблицы A, либо счетом-фактурой из таблицы A. Я хочу объединить таблицы таким образом, чтобы добавить недостающие столбцы в таблицу B Из таблицы A.

Ожидаемый результат


Order   date       quantity  Invoice
 111     20/08/2017   3       45
 111     20/08/2017   6       45
 113     22/08/2017   5       42
 49      20/08/2017   5       49
 112     21/08/2017   4       32


Что я уже пробовал:

select * 
from Table B  d2
left join Table A d1 on d2.Invoice =d1.order 


Это соответствует только столбцу заказа. Таким образом, в строке 4 таблицы ожидаемых результатов в столбце счета-фактуры будет указано null, я этого не хочу. если столбец заказа не совпадает, то я хочу, чтобы он проверил столбец счета-фактуры.

1 Ответов

Рейтинг:
1

OriginalGriff

Поэтому добавьте критерий к вашему условию соединения:

SELECT b.[Order], b.[Date],  b.Quantity, a.Invoice
FROM TableB  b
LEFT JOIN TableA a ON b.[Order] = a.[order] OR b.[Order] = a.Invoice