Соединение двух таблиц с использованием двух полей с разными именами не работает
У меня есть две таблицы,
a: таблица с запросом по часам
-----------------------------------------
datetime | customer | pastdemand | levelOfDetail |
-----------------------------------------
04-01-2019 06:00 | 444111 | 100 | 6 |
.........
04-30-2019 18:00 | 444111 | 150 | 6 |
здесь я могу иметь два уровня 6 или 24. Меня интересует только уровень = 6.
Таблица b: журнал сохраненных будущих значений по клиенту.
-----------------------------------------
forecastdatetime | custNumber | forecast | dateGenerated
-----------------------------------------
04-30-2019 18:00 | 444111 | 120 | 04-29-2019 18:00
..........
05-01-2019 18:00 | 444111 | 140 | 05-01-2019 18:00
05-02-2019 18:00 | 444111 | 140 | 05-01-2019 18:00
05-03-2019 18:00 | 444111 | 140 | 05-01-2019 18:00
05-04-2019 18:00 | 444111 | 140 | 05-01-2019 18:00
05-05-2019 18:00 | 444111 | 140 | 05-01-2019 18:00
........
Запрос:
SELECT a.[datetime],a.customer
[demand]
,b.*
FROM a
full outer join b on a.customer=b.custNumber
and a.datetime=b.forecastdatetime
Я получаю результаты, которые похожи на левое соединение.
----------------------------------------------------
datetime| customer| pastdemand | forecastdatetime|custNumber|forecast| dateGenerated
-----------------------------------------
04-01-2019 06:00 | 444111 | 100 | 6 | NULL | NULL | NULL | NULL
......
04-30-2019 18:00 | 444111 | 150 | 6 | 04-30-2019 18:00 | 444111 | 120 | 04-29-2019 18:00
Я хотел создать таблицу A U B, как и во всех значениях из значений A +, общих для A & B, на основе совпадения customer = custNumber и datetime = forecastdatetime для каждой сгенерированной даты.
Ожидаемый результат:
----------------------------------------------------
datetime| customer| pastdemand | forecastdatetime|custNumber|forecast| dateGenerated
-----------------------------------------
04-01-2019 06:00 | 444111 | 100 | 6 | NULL | NULL | NULL | NULL
04-02-2019 06:00 | 444111 | 100 | 6 | NULL | NULL | NULL | NULL
......
04-30-2019 18:00 | 444111 | 150 | 6 | 04-30-2019 18:00 | 444111 | 120 | 04-29-2019 18:00
NULL | NULL |NULL | NULL | 05-01-2019 18:00 | 444111 | 140 | 05-01-2019 18:00
NULL | NULL |NULL | NULL | 05-02-2019 18:00 | 444111 | 140 | 05-01-2019 18:00
NULL | NULL |NULL | NULL | 05-03-2019 18:00 | 444111 | 140 | 05-01-2019 18:00
NULL | NULL |NULL | NULL | ..........
Как вы заметили, я не получаю ту часть таблицы B, которая не распространена в A.
Я понимаю, что для использования объединения имена полей должны быть одинаковыми, в данном случае это не так. Был бы рад обойти