Разница между двумя таблицами в сумме строк на основе созданного нового столбца ИЛИ по сравнению с существующим столбцом

Итак, у меня есть две таблицы с одинаковыми столбцами, которые я хочу сравнить между собой двумя конкретными столбцами на предмет различий в данных. Первый подход не равен второму подходу, второй подход правильный, почему?

  • Первый подход: добавить столбец с именем тег равняется 1 на обоих. Затем выполните внутреннее объединение этих столбцов: SUM (A.fq1 - B.fq2) Если есть результат, тогда есть разница.

  • Второй подход: один существующий столбец, для которого я могу выполнить внутреннее соединение, - это ProductId. Тогда тот же самый подход, но условие Внутреннего соединения находится на ProductId. В результате для каждого продукта вычитается все.

Второй подход правильно показывает мне разницу между обеими таблицами для каждого конкретного ProductId. Но первый не делает, который показывает мне для всех строк. Почему это?

Кодпервого подхода: для лучшего контекста в этом примере: table3 == (table2-table1)

   out0 =
    SELECT 
        SUM(fq1) AS fq1,
        SUM(fq2) AS fq2,
           1 AS Tag
    FROM table3
    WHERE Date == @DayToValidate;
 
out1 =
    SELECT 
        SUM(fq1) AS fq1,
        SUM(fq2) AS fq2,
           1 AS Tag
    FROM table1;
 
out2 =
    SELECT 
        SUM(fq1) AS fq1,
        SUM(fq2) AS fq2,
           1 AS Tag
    FROM table2;
 
out3 =
    SELECT 
        (A.fq1- B.fq1) AS fq1diff,
        (A.fq2- B.fq2) AS fq2diff,
           1 AS Tag
    FROM out2 AS A
         INNER JOIN
             out1 AS B
         ON A.Tag == B.Tag;

 
out4 =
    SELECT (A.fq1diff - B.fq1) AS fq1Diff,
           (A.fq2diff - B.fq2) AS fq2Diff,
           1 AS Tag
    FROM out3 AS A
         INNER JOIN
             out0 AS B
         ON A.Tag == B.Tag;

0 ответов

Другие вопросы по тегам