我有一个记录表A。
员工号 进门时间 出门时间
1 2014-10-01 08:00:00 2014-10-01 18:00:00
2 2014-10-01 08:10:00 2014-10-01 17:00:00
3 2014-10-01 09:00:00 2014-10-01 12:00:00
1 2014-10-02 08:00:00 2014-10-01 17:00:00
2 2014-10-02 09:00:00 2014-10-01 17:00:00
里面记录着员工的进出时间和员工号。
我现在想统计员工的时长,并且根据时长进行排列。
例如得到这样的数据,同一个员工的时长需要合并起来。
员工号 总时长
1
2
3
谢谢各位。
------解决思路----------------------
通过datediff函数就可以没条记录对应工作时长,然后再根据员工号group by后sum(hour),最终按时间总和排序,家里电脑没装SQL,只能这样说下思路
补充下,这样的思路是基于你的数据是正确的,像你例子里面绝对有问题。。。进门时间晚于出门时间。。。
------解决思路----------------------
如果出门时间或者入门时间没有或者为null,你可以在datediff函数外用isnull函数包含下
------解决思路----------------------
SELECT 员工号或者
,SUM(DATEDIFF(HOUR,进门时间,出门时间))
FROM A
GROUP BY 员工号
SELECT 员工号
,SUM(DATEDIFF(MINUTE,进门时间,出门时间))/60[总小时]
,SUM(DATEDIFF(MINUTE,进门时间,出门时间))%60[余分钟]
FROM A
GROUP BY 员工号