当前位置: 代码迷 >> Sql Server >> 小弟我想实现如下的统计。有没有这样的语句
  详细解决方案

小弟我想实现如下的统计。有没有这样的语句

热度:96   发布时间:2016-04-24 09:32:10.0
我想实现如下的统计。有没有这样的语句?
我有一个记录表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 员工号
  相关解决方案