Как запустить два разных запроса в одном запросе с использованием MySQL?

У меня есть таблица счетов с этими столбцами.,

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

1

Решение

Использовать 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)
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]