我正在尝试编写一个查询,该查询将显示每月工作时间的持续时间矩阵。我正在努力实现这一目标。
我目前有这个。
正确的输出应该是
我的 SQL 是
`SELECT WEEK(start) as weekId, ( 选择总和(TIME_TO_SEC(TIMEDIFF(停止,开始))) FROM tbl_time_clock WHERE WEEKDAY(开始)=0 ) 作为星期一, ( 选择总和(TIME_TO_SEC(TIMEDIFF(停止,开始))) FROM tbl_time_clock WHERE WEEKDAY(开始)=1 ) 作为星期二, ( 选择总和(TIME_TO_SEC(TIMEDIFF(停止,开始))) FROM tbl_time_clock WHERE WEEKDAY(开始)=2 ) 作为星期三, ( 选择总和(TIME_TO_SEC(TIMEDIFF(停止,开始))) FROM tbl_time_clock WHERE WEEKDAY(开始)=3 ) 作为星期四, ( 选择总和(TIME_TO_SEC(TIMEDIFF(停止,开始))) FROM tbl_time_clock WHERE WEEKDAY(开始)=4 ) 作为星期五, ( 选择总和(TIME_TO_SEC(TIMEDIFF(停止,开始))) FROM tbl_time_clock WHERE WEEKDAY(开始)=5 ) 作为星期六, ( 选择总和(TIME_TO_SEC(TIMEDIFF(停止,开始))) FROM tbl_time_clock WHERE WEEKDAY(开始)=6 ) 作为星期天 FROM tbl_time_clock WHERE MONTH(start) = {$monthId} AND user_id = {$userId} 按周分组(开始)`
表看起来像
╔═════════╦═════════════════════╦═════════════════ ════╗ ║ user_id ║ 开始 ║ 停止 ║ ╠═════════╬═════════════════════╬═════════════════ ════╣ ║ 1 ║ 2012-08-28 08:14:49 ║ 2012-08-28 10:14:49 ║ ║ 1 ║ 2012-08-25 10:00:32 ║ 2012-08-25 16:21:57 ║ ╚═════════╩═════════════════════╩═════════════════ ════╝
谢谢!!!