[英]Group mysql query results in php generated table and add results of table row together with same id
我有一个很大的MySQL表,看起来像这样:
job_number time_on time_off
111 18:50:10 18:51:18
222 18:13:09 19:33:42
111 07:12:04 08:30:20
333 10:34:03 12:53:10
444 14:54:25 12:11:04
444 10:31:48 16:34:53
111 17:21:41 20:21:41
(type: Varchar) (type: time) (type: time)
我想找到每个job_number的time_on和time_off字段之间的差异,并在$ total_time列中回显它们。
如果有多个具有相同job_number(111,444)的行,我希望能够找到该行的time_on和time_off之间的差异,还要将这些值加在一起。 我想确保每个唯一的工作编号仅包含一行,其合并时间如下:
Job Total Time // ($total_time = $time_off - $time_on)
111 04:19:34 // ((18:51:18 - 18:50:10) + (08:30:20 - 07:12:04) + (20:21:41 - 17:21:41))
222 01:20:33 // (19:33:42 - 18:13:09)
333 02:19:07 // (12:53:10 - 10:34:03)
444 08:46:26 // ((16:34:53 - 10:31:48) + (14:54:25 - 12:11:04))
结果将被格式化为一个简单的表格,如下所示:
<table>
<tr>
<th>Job</th>
<th>Total Time</th>
</tr>
<tr>
<td>111</th>
<td>04:19:34</th>
</tr>
<tr>
<td>222</th>
<td>01:20:33</th>
</tr>
...
</table>
我将如何去做? 我更喜欢使用PHP实现这一目标。 任何帮助将不胜感激。 谢谢
您可以在SQL中执行此操作:
SELECT job_number,
SEC_TO_TIME(SUM(TIME_TO_SEC(time_off) - TIME_TO_SEC(time_on)))
FROM my_table
GROUP BY job_number
在sqlfiddle上看到它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.