Php 如何使用MySQL在一个查询中运行两个不同的查询?
我有一个包含这些列的发票表Php 如何使用MySQL在一个查询中运行两个不同的查询?,php,mysql,unions,Php,Mysql,Unions,我有一个包含这些列的发票表 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 U
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
选择月份(日期),
作为美国金额的总和(国家=‘美国’的情况下,则总计为0),
作为非美国金额的金额(如果国家为“美国”,则合计其他0)
从发票
其中年份(日期)=2016年
按月分组(日期)
在sum()中使用案例
选择月份(日期),
作为美国金额的总和(国家=‘美国’的情况下,则总计为0),
作为非美国金额的金额(如果国家为“美国”,则合计其他0)
从发票
其中年份(日期)=2016年
按月分组(日期)
我想通过同样的查询查询非美国金额?我们如何使用第二列查询美国退款,非美国退款@juergen dTry来解决这个问题,但不可能,请问另一个问题。我想通过同样的查询查询非美国金额?我们如何使用第二列查询美国退款,非美国退款@juergen dTry要想弄清楚这一点,不可能,请问另一个问题。
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)