Получить сумму конкретного идентификатора mysql с разными типами и именем

0

Я пытаюсь получить сумму всех чеков, но с разными типами и именем, и у меня возникают проблемы с получением суммы для всех из них. У меня есть сумма транзакции и дисконтированная сумма. Я хочу получить сумму двух транзакций, чтобы получить свой оценочный итог. Обратите внимание, что у меня есть различные виды транзакций, которые также имеют разные виды дисконтов и суммы транзакции (например, скидка 20%, скидка 5%).

Итак, далеко то, что я получил по моему запросу, - это только первые две записи, у которых есть Check 201, количество которых составляет 85. Тем не менее, я также хочу получить другую транзакцию с Check 301. Таким образом, получив расчетную общую сумму 225.

Кто-нибудь может мне с этим помочь?

Вот мои образцы данных. Изображение 174551

Здесь мой запрос:

select a.DATE, a.ID, SUM(a.amount) as TRANSACTION, 
(select sum(cashier.amount) from cashier where 'cashier '.'check' = 
a.'check' and cashier.date = a.date  and  cashier.ID= a.ID GROUP BY 
'cashier.check) as 'ESTIMATED VALUE'  FROM cashier a where a.date = 
'8/1/2017' and a.name = 'Price discounted 10%' GROUP BY a.DATE, a.ID ORDER BY a.date
Теги:
subquery

1 ответ

0
Лучший ответ

Используйте case expression для обработки суммы как положительного, так и отрицательного (для скидок), а затем просто суммируйте это.

SELECT
      a.'date'
    , a.ID
    , SUM(a.amount) AS 'transaction'
    , SUM(case when type <> 1 then a.amount*-1.0 else a.amount end) AS 'estmated_value'
FROM cashier a
WHERE a.date = '2017-01-08'
AND a.name = 'Price discounted 10%'
GROUP BY
      a.'date'
    , a.ID
ORDER BY
      a.'date'

Ещё вопросы

Сообщество Overcoder
Наверх
Меню