У меня есть таблица, которая выглядит как внизу. Я пытаюсь выяснить, как обновить столбец «endval» со значением, указанным в столбце «startval», уменьшенным на 10% для каждого кратного 5 в столбце «эффект».SQL Server Прогрессивная/сложная вычитание?
declare @tbl table (rowid int , effect Int , startval decimal(6,2) , endval decimal(6,2))
insert @tbl values
(0 , 10 , 6 , null) -- expect 4.86 in endval
, (1 , 40 , 10 , null ) -- expect 4.30 in endval
, (2 , 7 , 1 , null) -- expect .9 in endval
select * from @tbl
Обратите внимание, что RowId 2 не имеет даже кратное 5 в колонке «эффект», так что уменьшается только на 10% раз.
Я пытаюсь придумать любой способ «прогрессивно процентного» в TSQL (2012), и ничего не приходит на ум. Помогите?
Спасибо.