あなたは、時間を小数として保存することで傷ついた世界にいます。私の見方では、あなたの時間は10進数で保存されているので、1時間30分は1.3になりますよね?
.90は90分を意味するため、33.90が34.30に変わると予想していますが、その些細な問題を超えて、ストレージ形式での大規模な障害を考慮しましたか?このシナリオを考えてみましょう。
create table ConsultantTimeSheet (WorkingHours decimal(5,2));
insert ConsultantTimeSheet select 1.3;
insert ConsultantTimeSheet select 1.3;
insert ConsultantTimeSheet select 1.3;
insert ConsultantTimeSheet select 1.5;
Declare @sum varchar(50);
Set @sum = (select SUM(ct.WorkingHours) from ConsultantTimeSheet ct);
select @sum;
--- output
5.40
.40は60を超えていないため、変換は行われません。でも、本当に6時間20分なのに!
とにかく、あなたが持っているもので作業するには、これが必要になります。できるだけ早い機会にdb構造を修正してください。
Declare @sum varchar(50);
Set @sum = (select 1.0*floor(RawDecimal)+(RawDecimal-1.0*floor(RawDecimal))*60/100
from (
select RawDecimal=sum(1.0*floor(WorkingHours)) + sum(WorkingHours-floor(WorkingHours))/60*100
from ConsultantTimeSheet ct
where ConsultantID = @Consultantid
and ct.Status = @status
and ct.StartDate = @StartDate
and ct.EndDate = @Enddate ) x);
select @sum;
--- output
6.2