У меня есть следующий запрос:MySql Сводные запросы - проблемы с SUM()
select
extract(year from p.when_paid) yyyy,
MONTHNAME(STR_TO_DATE(extract(month from p.when_paid), '%m')) mm,
f.name,
IF(p.payment_type_id = 1,SUM(p.amount),null) MedPay,
IF(p.payment_type_id = 2,SUM(p.amount),null) Liability,
IF(p.payment_type_id = 3,SUM(p.amount),null) WC,
IF(p.payment_type_id in (8,9),SUM(p.amount),null) VA,
IF(p.payment_type_id = 10,SUM(p.amount),null) Health
from services s
join payments p on p.service_id = s.id
join accounts a on a.id = s.account_id
join facilities f on f.id = a.facility_id
GROUP BY f.name, yyyy, mm
ORDER BY f.name ASC;
Прямо сейчас я могу получить таблицу для заполнения, но не сортирует по payment_type. Например, он будет суммировать все платежи в MedPay или Liability, но не будет разделять их как сводную таблицу. Какой был бы лучший способ сделать это? Вот структура таблицы:
amount when_paid payment_type_id
---------------------------------------
500 2013-02-02 2
400 2013-02-02 3
250 2013-02-02 2
Я хочу, чтобы выход выглядеть
yy mm name MedPay Liability WC VA Health
----------------------------------------------------
2013 2 Fact 750 400
работал идеально, спасибо! – Rob