Hishmalif
@Hishmalif
Начинающий программист с большим желанием учится

Как найти разность сумм по условию?

Как найти разность сумм по условию? Подробнее: есть два столбца в одном тип документа, в втором его сумма и нужно первую сумму документов по типу (Данные сгруппированы) вычесть из второй. Пример:
select (sum(amount) and idoperation = 1) - (sum(amount) and idoperation = 2)
from journal group by idoperation
Но выполнение такого запроса сообщает о синтаксической ошибке.
Если проще то из первого значения вычесть значение последующих 616a9f1a75ed4597970787.png
  • Вопрос задан
  • 108 просмотров
Решения вопроса 2
BojackHorseman
@BojackHorseman
...в творческом отпуске...
SELECT 
SUM(CASE WHEN idoperation = 1 THEN amount ELSE 0 END) 
- SUM(CASE WHEN idoperation = 2 THEN amount ELSE 0 END) 
FROM ...
Ответ написан
Комментировать
tsklab
@tsklab Куратор тега SQL Server
Здесь отвечаю на вопросы.
SELECT ( SELECT SUM(ammount) FROM journal WHERE idoperation = 1 )
     - ( SELECT SUM(ammount) FROM journal WHERE idoperation = 2 ) AS result
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
rozhnev
@rozhnev
Fullstack programmer, DBA, медленно, дорого
Всё может быть проще:
SELECT 
SUM(ammount * (CASE WHEN idoperation = 1 THEN 1 ELSE -1 END)) AS result
FROM journal
;


SQL SUM fiddle
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы