首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP按日期(月和年)以及用户进行选择和分组

问PHP按日期(月和年)以及用户进行选择和分组
EN

Stack Overflow用户
提问于 2015-10-02 15:49:53
回答 2查看 649关注 0票数 0

我有张桌子上面有这样的信息:

代码语言:javascript
复制
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

我要做的是选择和计数每个工作人员的所有条目,并按月和年分组,这样它就会显示如下:

代码语言:javascript
复制
Staff Member  | 12  | 14  | 16
2015-04       | 0   | 1   | 1
2015-05       | 1   | 1   | 0

有谁能帮我弄清楚怎么产生这个吗?我只是想不出如何为每个工作人员创建一个新的列,以及如何为每个月/年创建一行。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-10-02 15:54:02

这是一个枢轴查询,但由于日期的关系而有点复杂:

代码语言:javascript
复制
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动态支点“,看看如何做到这一点。

票数 1
EN

Stack Overflow用户

发布于 2015-10-02 16:02:55

这被称为交叉表查询(也称为枢轴表)。MySql本机不支持这种转换。

可能的解决方案: 1.以传统方式按用户和月份生成计数,然后使用php将数据转换为最终的结果集。2.使用电子表格程序(例如。再次根据传统数据集为您执行转换。3.在MySql中有一些方法可以实现,参见link1,link2

第二个链接是SO链接。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32911052

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档