Вот что я пытаюсь сделать, просматривая записи.
Я бы хотел иметь более элегантное решение, если это возможно, поскольку я уверен, что это не лучший способ сделать это в SQL.
set @counter = 1
declare @totalhrs dec(9,3), @lastemp char(7), @othrs dec(9,3)
while @counter <= @maxrecs
begin
if exists(select emp_num from #tt_trans where id = @counter)
begin
set @nhrs = 0
set @othrs = 0
select @empnum = emp_num, @nhrs = n_hrs, @othrs = ot_hrs
from #tt_trans
where id = @counter
if @empnum = @lastemp
begin
set @totalhrs = @totalhrs + @nhrs
if @totalhrs > 40
begin
set @othrs = @othrs + @totalhrs - 40
set @nhrs = @nhrs - (@totalhrs - 40)
set @totalhrs = 40
end
end
else
begin
set @totalhrs = @nhrs
set @lastemp = @empnum
end
update #tt_trans
set n_hrs = @nhrs,
ot_hrs = @othrs
where id = @counter and can_have_ot = 1
end
set @counter = @counter + 1
end
Thx