将分割的开始和结束时间合并为一个开始和结束时间

时间:2016-10-31 19:26:30

标签: sql sql-server

我正在尝试将一些行组合成一行。

我当前的查询提供以下内容:

ID   Name   Dept   Hours  Date         Start_time           End_time
---  ----   ----   -----  ----         -----------          ----------
1    John   01-A   4:45   10-18-2016   10-18-2016 06:00:00  10-18-2016 10:45:00
1    John   01-A   3:15   10-18-2016   10-18-2016 11:15:00  10-18-2016 14:30:00

我需要select语句来显示此结果:

ID   Name   Dept   Hours  Date         Start_time           End_time
---  ----   ----   -----  ----         -----------          ----------
1    John   01-A   8:50   10-18-2016   10-18-2016 06:00:00  10-18-2016 14:30:00

2 个答案:

答案 0 :(得分:1)

假设这就是您喜欢的数据。

Select ID, Name, DEPT, SUM(HOURS), DATE, MIN(START_TIME),MAX(END_TIME)
from table
group by ID, Name, DEPT, DATE 

答案 1 :(得分:0)

据推测,问题在于将时间加在一起(我假设hourstime)。这是一种方法:

select id, name, dept,
       cast(dateadd(minute, 0, sum(datediff(minute, 0, hours))) as time) as hours,
       date,
       min(start_time) as start_time,
       max(end_time) as end_time
from t
group by id, name, dept, date;

这会将输出格式化为时间。您可以将其重新格式化为您喜欢的任何格式。