我有一张如下所示的表格。我试图弄清楚如何使用来自“startval”列的值更新“endval”列,在“效果”列中每 5 的倍数减少 10%。
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)中想出任何“渐进式百分比”的方法,但什么都没有想到。帮助?
谢谢。