我有一个包含这些列的发票表。
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
我想按月分组获取美国总金额、非美国总金额,我正在使用这些查询我只得到美国总金额
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
最佳答案
在sum()
中使用case
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)
关于php - 如何使用 MySQL 在单个查询中运行两个不同的查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38765875/