У меня есть таблица счетов с этими столбцами.,
id total date country
1 50 2016-01-25 USA
2 40 2016-01-24 UK
3 30 2016-01-22 France
4 40 2016-01-26 UK
5 50 2016-01-18 USA
6 60 2016-02-20 USA
7 70 2016-02-21 USA
8 55 2016-02-18 UK
9 75 2016-02-19 France
и я хочу получить итоговую сумму в США, NON США по группам по месяцам, я использую этот запрос и получаю только общую сумму по США
SELECT MONTH(date),YEAR(date),SUM(total) as usa_amount
FROM Invoice
WHERE YEAR(date) = '2016'
AND country='USA'
GROUP BY MONTH(date)
и я получаю этот результат
MONTH(date) YEAR(date) usa_amount
01 2016 100
02 2016 130
Я хочу, чтобы этот результат с помощью MySQL союзов или что-нибудь?
MONTH(date) YEAR(date) usa_amount non_usa_amount
01 2016 100 110
02 2016 130 130
Использовать case
в sum()
SELECT MONTH(date),
SUM(case when country = 'USA' then total else 0 end) as usa_amount,
SUM(case when country <> 'USA' then total else 0 end) as non_usa_amount
FROM Invoice
WHERE YEAR(date) = 2016
GROUP BY MONTH(date)
Других решений пока нет …