我正在尝试编写一个查询,该查询将显示每月工作时间的持续时间矩阵。我正在努力实现这一目标。

我目前有这个。

正确的输出应该是

我的 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 ║ ╚═════════╩═════════════════════╩═════════════════ ════╝
谢谢!!!