繁体   English   中英

如何使用MySQL在单个查询中运行两个不同的查询?

[英]how to run two different queries in a single query using 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

而且我想按月获得美国总金额,非美国总金额组,我使用这些查询我只获得美国总金额

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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM