我的表格有这样的信息:
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
任何人都可以帮我弄清楚如何生成这个?我只是想弄清楚如何为每个工作人员创建一个新列,以及每个月/每年创建一行。
答案 0 :(得分:1)
这是一个透视查询,但由于日期而有点复杂:
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;
如果您事先不知道员工ID,那么您将需要使用动态SQL。谷歌“MySQL动态支点”,看看如何做到这一点。
答案 1 :(得分:0)