一个表中: userid dbenginddatetime denddatetime nLeaveHours aa 2010-04-01 08:00:00 2010-04-01 17:30:00 8 aa 2010-04-01 19:00:00 2010-04-01 22:00:00 3 我想得到: aa 2010-04-01 08:00:00 22:00:00 11 也就是说: 一天的数据都数据加起来。我查了资料都没有得到想要的结果。 麻烦各位朋友看看。万一是第二天下班怎么办呢? sum(nLeaveHour)
先把数据合在一起,在求和。 dbenginddatetime denddatetime
跨天怎么办 汗,就是跨天的情况还没有考虑
跨天的话,则各算各的. 例如 22:00 -- 03:00
则第一天算两个小时,第二天算3个小时. select userid, min(dbenginddatetime) ,max(denddatetime ),sum(nLeaveHour) from tb group by userid where dbenginddatetime>convert(varchar(10),getdate(),121) and denddatetime <convert(varchar(10),getdate()+1,121)