如何将行转换为具有特定日期范围的MySQL上的列

时间:2016-09-22 09:11:22

标签: mysql pivot transpose

我有这张桌子:

user_id  date        total
1        2016-07-01  2
1        2016-08-01  4
2        2016-07-01  2
2        2016-08-01  5
3        2016-07-01  2
3        2016-08-01  3
4        2016-07-01  4
4        2016-08-01  3
5        2016-07-01  1
5        2016-08-01  5

我想用这种格式转换这个表:

userid  2016-07-01  2016-08-01
1       2           4
2       2           5
3       2           3
4       4           3
5       1           5

我正在使用此查询:

select 
user_id,
CASE WHEN MONTH(date)=7 then total ELSE 0 END as Jul,
CASE WHEN MONTH(date)=8 then total ELSE 0 END as Agust
from table_data
order by user_id

但结果是:

userid  2016-07-01  2016-08-01
1       2           0
1       0           4
2       2           0
2       0           5
3       2           0
3       0           3
4       4           0
4       0           3
5       1           0
5       0           5

这个查询如何,我想用PHP显示到web。

0 个答案:

没有答案