【发布时间】:2019-05-05 19:30:34
【问题描述】:
我希望将所有小时的总和作为最后一行的摘要。我正在使用以下查询来获取结果:
create table time_test (type varchar(10),time varchar(10))
insert into time_test values ('A','01:25')
insert into time_test values ('B','02:30')
insert into time_test values ('C','05:56')
insert into time_test values ('D','00:50')
--select * from time_test
SELECT
type = ISNULL(type, 'Total'),
time = substring((cast(sum(((cast(substring (time,2,1) as decimal)*60 + cast(substring (time,4,2) as decimal))/60)) as varchar(10))),1,2)+':' + cast((cast((round(((cast((((cast((substring((cast((sum(((cast(substring (time,2,1) as decimal)*60 + cast(substring (time,4,2) as decimal))/60))) as varchar(10))),4,2)) as int))*60)) as decimal)/100)),0)) as int)) as varchar(10))
FROM time_test
GROUP BY ROLLUP(type);
输出:
正如您所见,除了这个总计算工作正常之外,时间不正确。
问题: 请让我知道我在显示数据时哪里出错了。
提前致谢。
【问题讨论】:
标签: sql sql-server rollup