SQL Получение суммы всех строк с помощью внутреннего соединения и группировки по - PullRequest
0 голосов
/ 07 мая 2020

Я пытаюсь получить сумму строк одного и того же DueDate. Я присоединяюсь к 2 таблицам, чтобы заполнить другие поля. Однако мне трудно агрегировать значения в столбце Amount, так что я могу получить одну строку для указанного c DueDate Все остальные столбцы имеют одинаковое значение, за исключением Amount и DueDate .

enter image description here

Ниже мой запрос

SELECT
T2.Company,
T2.Code
T2.DueDate,
SUM(T2.Amount)

FROM TBL2 T2 
LEFT JOIN
    TBL1 T1 
    ON T2.Company = T1.Company 
    AND T2.Code IN 
    (
       0, 1, 2, 3, 4, 5, 6, 7, 8
    )
GROUP BY
T1.Company,T2.Code,T2.DueDate,T2.Amount

Когда я запускаю запрос, я получаю:

enter image description here

Агрегируются только строки с DueDate «20200604». (5000 + 5000 = 10000).

Как агрегировать и группировать по разным значениям и объединению таблиц?

Буду признателен за любую помощь.

Спасибо.

1 Ответ

0 голосов
/ 07 мая 2020

Вы просто ищете правильную агрегацию?

SELECT T2.Company, T2.Code T2.DueDate, SUM(T2.Amount)
FROM TBL2 T2 LEFT JOIN
     TBL1 T1 
     ON T2.Company = T1.Company AND
        T2.Code IN  0, 1, 2, 3, 4, 5, 6, 7, 8)
GROUP BY T1.Company, T2.Code, T2.DueDate;

То есть AMOUNT не входит в GROUP BY.

...