我正在尝试将一些行组合成一行。
我当前的查询提供以下内容:
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
答案 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)
据推测,问题在于将时间加在一起(我假设hours
是time
)。这是一种方法:
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;
这会将输出格式化为时间。您可以将其重新格式化为您喜欢的任何格式。