【发布时间】:2014-12-08 03:25:38
【问题描述】:
我有一个登录表,供在不同项目上记录时间的人使用,我需要编制一份报告,说明每个项目的工作天数。
我的桌子看起来像这样:
id | project | time_in
----------------------------------
1 | 1 | 2014-12-07 05:00:00
2 | 2 | 2014-12-08 06:00:00
3 | 1 | 2014-12-05 14:00:00
4 | 3 | 2014-12-07 08:30:00
5 | 2 | 2014-12-07 12:00:00
6 | 1 | 2014-12-08 05:00:00
7 | 2 | 2014-12-05 06:00:00
8 | 1 | 2014-12-06 14:00:00
9 | 3 | 2014-12-08 08:30:00
10 | 2 | 2014-12-06 12:00:00
time_in 的类型为 TIMESTAMP。
我需要弄清楚的是,给定一个日期范围(例如 12 月 5 日至 8 日),每个项目在一周中的哪几天进行。我对查询非常灵活,即我可以使用循环生成查询,而且我对结果集的外观也很灵活,只要我可以解析它以获得我需要的信息。例如,也许:
project | days
-----------------------------------------------------
1 | 2014-12-07,2014-12-08,2014-12-05,2014-12-06
2 | 2014-12-08,2014-12-07,2014-12-05,2014-12-06
3 | 2014-12-07,2014-12-08
或者更好:
project | d0 | d1 | d2 | d3
---------------------------
1 | 1 | 1 | 1 | 1
2 | 1 | 1 | 1 | 1
3 | 0 | 0 | 1 | 1
如果可能的话,我真的不知道从哪里开始这样的查询。
【问题讨论】: