Я не могу сделать это в 1 запросе, но я могу сделать это в нескольких !!
Во-первых, создайте запрос объединения (Query1), который объединяет элементы в таблице 1, которые не отображаются в таблица 2, а также те элементы в таблице 2, которые не отображаются в таблице 1. Ваш SQL должен выглядеть следующим образом:
SELECT T2.ID
FROM Table2 T2 LEFT JOIN Table1 T1 ON T2.[ID] = T1.[ID]
WHERE (((T1.ID) Is Null))
UNION SELECT T1.ID
FROM Table1 T1 LEFT JOIN Table2 T2 ON T1.[ID] = T2.[ID]
WHERE (((T2.ID) Is Null));
Ваш второй запрос (Query2) затем основывается на этом запросе, объединенном с и Table1 и Table2, показывая все записи из запроса и любые записи из этих таблиц, где идентификаторы совпадают. Ваш SQL должен выглядеть следующим образом:
SELECT Q1.ID, T1.holiday AS H1, T2.Holiday AS H2
FROM Table2 T2 RIGHT JOIN (Table1 T1 RIGHT JOIN Query1 Q1 ON T1.ID = Q1.ID) ON T2.ID = Q1.ID;
Затем создайте запрос объединения (Query3) на основе таблиц Table1 и Table2:
SELECT T1.ID FROM Table1 T1
UNION SELECT T2.ID FROM Table2 T2;
Затем создайте четвертый запрос (Query4) основанный на Query3, соединенный с Table1 и Table2, где Table1.Holiday <> Table2.Holiday:
SELECT Q3.ID, T1.holiday AS H1, T2.Holiday AS H2
FROM Table2 T2 RIGHT JOIN (Table1 T1 RIGHT JOIN Query3 Q3 ON T1.ID = Q3.ID) ON T2.ID = Q3.ID
WHERE T1.Holiday<>T2.Holiday
Наконец, создайте запрос объединения на Query2 и Query4:
SELECT ID, H1, H2 FROM Query2
UNION SELECT ID, H1, H2 FROM Query4
This Затем вы должны получить желаемый результат:
Хотя в SQL может быть более простой способ сделать это .......
С уважением,