#sql #datetime #ms-access #sum #pivot
#sql #дата и время #ms-access #сумма #сводная
Вопрос:
Здесь запрос, который я написал, очень простой.
SELECT GeneralLedger, YEAR(ReportingDate) AS jaar, MONTH(ReportingDate) AS periode, SUM(AmountDCDebit - AmountDCCredit) AS Saldo
FROM dbo.GeneralLedgerBalances
GROUP BY GeneralLedger, YEAR(ReportingDate), MONTH(ReportingDate)
HAVING (YEAR(ReportingDate) = 2020)
результат, который я получаю,
Как я могу получить этот результат:
Я хочу получить точки в столбце, как я могу изменить свой запрос?
Ответ №1:
Вы можете использовать условную агрегацию:
SELECT
GeneralLedger,
YEAR(ReportingDate) AS jaar,
SUM(IIF(MONTH(ReportingDate) = 1, AmountDCDebit - AmountDCCredit, 0)) AS Saldo01,
SUM(IIF(MONTH(ReportingDate) = 2, AmountDCDebit - AmountDCCredit, 0)) AS Saldo02,
...
SUM(IIF(MONTH(ReportingDate) = 12, AmountDCDebit - AmountDCCredit, 0)) AS Saldo12
FROM dbo.GeneralLedgerBalances
WHERE (YEAR(ReportingDate) = 2020)
GROUP BY GeneralLedger, YEAR(ReportingDate)
Комментарии:
1. Привет, если я попробую это, я получу эту ошибку: Ошибка в списке аргументов функции: «СУММА» не распознана. Невозможно проанализировать текст запроса.
2. @Barendrecht . , , Вы делаете что-то не так.
SUM()
это очень распространенная функция SQL.3. @Barendrecht: между выражениями не хватает запятых
SUM()
…