Select 按种类求和分组

Select sum and group by kind

我正在尝试用我的 MySql 数据库中的数据填充莫里斯图的数据数组。

我有这样的 table 'buchungen':

ID   Value   Kind   Date
1    200     L      2016-01-01
2    250     B      2016-01-01
3    250     L      2016-01-01
4    200     B      2016-02-01
5    250     B      2016-02-01
6    200     L      2016-02-01

我想做一个查询,给我这样的输出:

价值总和,按数据和种类分组。

1 月:450、L 和 250 B

2 月:450 B 和 200 L

需要的结构:

[{"m":"1","a":"450","b":"250},{"m":"2","a":"200","b":"450}]

我的查询:

SELECT MONTH( date ) AS m, SUM( value ) AS a
FROM  `buchungen`
WHERE YEAR( date ) = YEAR( CURDATE( ) )
GROUP BY MONTH( date )

我得到以下结构:

[{"m":"4","a":"476852.64"},{"m":"5","a":"851866.74"}]

我有一个问题,我不知道如何考虑 'kind' 字段。我该怎么做?

谢谢!

试试这个:

SELECT MONTH( date ) AS m, 
       SUM(CASE WHEN Kind = 'L' THEN value ELSE 0 END) AS a,
       SUM(CASE WHEN Kind = 'B' THEN value ELSE 0 END) AS b
FROM  `buchungen`
WHERE YEAR( date ) = YEAR( CURDATE( ) )
GROUP BY MONTH( date )

正如您提到的,您想要按日期和种类分组的价值总和,试试这个:

SELECT MONTH( date ) AS m, kind, SUM( value ) AS a FROM  `buchungen` WHERE YEAR( date ) = YEAR( CURDATE( ) ) GROUP BY MONTH( date ), kind;