Я хочу получить сумму всех часов в качестве сводки в последней строке. Я использую следующий запрос для получения результата:
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);
ВЫХОД:
Как видите, время идет неправильно, кроме того, что общий расчет работает нормально.
Проблема. Пожалуйста, дайте мне знать, где я работаю неправильно при отображении данных.
Заранее спасибо.