我有张桌子上面有这样的信息:
id | staff_id | start_date
1 | 14 | 2015-04-02 00:00:00
2 | 16 | 2015-04-15 00:00:00
3 | 14 | 2015-05-31 00:00:00
4 | 12 | 2015-05-04 00:00:00我要做的是选择和计数每个工作人员的所有条目,并按月和年分组,这样它就会显示如下:
Staff Member | 12 | 14 | 16
2015-04 | 0 | 1 | 1
2015-05 | 1 | 1 | 0有谁能帮我弄清楚怎么产生这个吗?我只是想不出如何为每个工作人员创建一个新的列,以及如何为每个月/年创建一行。
发布于 2015-10-02 15:54:02
这是一个枢轴查询,但由于日期的关系而有点复杂:
select date_format(start_date, '%Y-%m') as yyyymm,
sum(staff_id = 12) as `12`, sum(staff_id = 14) as `14`,
sum(staff_id = 16) as `16`
from table t
group by yyyymm;如果您事先不知道员工ids,则需要使用动态SQL。谷歌"MySQL动态支点“,看看如何做到这一点。
https://stackoverflow.com/questions/32911052
复制相似问题