我有一个表(名称=费用),如下所示:
id amount date
1 -1687 2014-01-02 00:00:00.0
2 11000 2014-01-02 00:00:00.0
3 1500 2014-01-03 00:00:00.0
4 -3800 2014-01-03 00:00:00.0
5 119500 2014-01-01 00:00:00.0
6 -2999 2014-01-04 00:00:00.0
7 5972 2014-01-04 00:00:00.0
..
8 7208 2014-12-31 00:00:00.0
我能够检索收入并按月对其进行分组,如下所示:
SELECT
SUM(amount),
date
FROM expense
WHERE YEAR(now()) = YEAR(date) AND amount>0
GROUP BY MONTH(date);
我能够检索费用并按月对其进行分组,如下所示:
SELECT
SUM(amount),
date
FROM expense
WHERE YEAR(now()) = YEAR(date) AND amount<=0
GROUP BY MONTH(date);
我想知道是否有一种方法可以组合这两个查询并检索收入和费用,并按月将其分组到单个查询中.
最佳答案
是的,您需要一份案例陈述:
SELECT
sum(case when amount> 0 then amount end) as income,
sum(case when amount<=0 then amount end) as expense,
date
FROM expense
WHERE YEAR(now()) = YEAR(date)
GROUP BY MONTH(date);
关于MySQL 与 group by 的案例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29553709/