SQL для создания резюме финансовых операций отчет
У меня есть таблица транзакций, как картинке выше. Теперь я хочу, чтобы создать сводный отчет следующим образом:
Что будет лучший подход писать SQL?
Пожалуйста, помогите. Заранее спасибо :)
SQL для создания резюме финансовых операций отчет
У меня есть таблица транзакций, как картинке выше. Теперь я хочу, чтобы создать сводный отчет следующим образом:
Что будет лучший подход писать SQL?
Пожалуйста, помогите. Заранее спасибо :)
Другой способ получить тот же результат, но без дополнительной группировки:
WITH base AS
(
SELECT Debtor_Acc As Account_NO, Amount*-1 as Amount FROM transaction
UNION ALL
SELECT Creditor_Acc, Amount FROM transaction
)
SELECT Account_NO, SUM(Amount) Amount
FROM base
GROUP BY Account_NO
Проверить SQLFiddle
и еще один вариант - без использования КТР:
SELECT Account_NO, SUM(Amount) Amount
FROM
(
SELECT Debtor_Acc As Account_NO, Amount*-1 as Amount FROM transaction
UNION ALL
SELECT Creditor_Acc, Amount FROM transaction
)
GROUP BY Account_NO
Проверить SQLFiddle
Существует множество подходов к достижению отчета. Я использовал выражение Common table. Вы также можете изменить запрос и использовать соединения.
WITH CTE (Account_NO,Amount)
AS
(
SELECT Debtor_Acc As Account_NO,-SUM(Amount) Amount
FROM transaction GROUP BY Debtor_Acc
UNION
SELECT Creditor_Acc,SUM(Amount)
FROM transaction GROUP BY Creditor_Acc
)
SELECT Account_NO,SUM(Amount) FROM CTE
GROUP BY Account_NO
у вас есть опечатка в коде - в нижнем запросе –
Thankx @Andrey :). Я исправил это. –
Этот вопрос не соответствует теме, потому что это описание требований. –
Я могу сделать это, используя общее табличное выражение. Но я хочу знать, есть ли лучший подход. Спасибо за прощальное голосование :) –
Это ** резюме ** (не * summery *) –