Надеюсь, я здесь не делал никаких опечаток, но идея в том, что вы хотите выполнить FULL OUTER JOIN, чтобы не потерять данные ни из одной таблицы.тогда вам просто нужно вычесть одно значение из другого, указав в предложении «ON», как объединить две таблицы.Поскольку некоторые данные могут иметь информацию из Таблицы 2, а не из Таблицы1, я проверил, нашел ли он что-нибудь, если нет, я извлек из второй таблицы.
Примечание.Будьте осторожны со столбцами, которые используют зарезервированные слова (GROUP).Я поставил скобки вокруг них, чтобы он распознал его как имя столбца
SELECT
IIF(ISNULL(T1.[group]), T2.[group], T1.[group]) AS [group],
IIF(ISNULL(T1.[PU]), T2.[PU], T1.[PU]) AS [PU],
IIF(ISNULL(T1.[currency]), T2.[currency], T1.[currency]) AS [currency],
IIF(ISNULL(T2.[8345]), 0, T2.[8345]) - IIF(ISNULL(T1.[8345]), 0, T1.[8345]) AS [8345],
IIF(ISNULL(T2.[6789]), 0, T2.[6789]) - IIF(ISNULL(T1.[6789]), 0, T1.[6789]) AS [6789],
IIF(ISNULL(T2.[4589]), 0, T2.[4589]) - IIF(ISNULL(T1.[4589]), 0, T1.[4589]) AS [4589]
FROM Table1 T1
FULL OUTER JOIN TABLE2 T2
ON T1.[group] = T2.[group]
AND T1.[PU] = T2.[PU]
AND T1.[currency] = T2.[currency]