我有一个像这样设置的临时表:
Type Rate TotalCost
---- ---- ---------
Type1 0.01 3276.00
Type2 0.01 3276.00
Type3 0.01 3276.00
但是,我需要将当前行的费率乘以上一个总数,然后将其添加到当前总数中……得出新的总数!
Type Rate TotalCost
---- ---- ---------
Type1 0.01 3276
Type2 0.01 3308.76
Type3 0.01 3341.85
所以 3276 的 1% 是 32.76。
3276 + 32.76 = 3308.76。
3308 的 1% 是 33.08。
3308.76 + 33.08 = 3341.85。
等等。
我尝试创建一个 CTE,就像这样..
;with cte
as
(
select Type, Rate, TotalCost, row_number() over (order by SortOrder asc) as RowNum
from @Types
)
select cur.RowNum, cur.Rate, prev.Rate, cur.TotalCost, isnull(prev.TotalCost * cur.Rate, cur.TotalCost) as NewTotal
from cte cur
left join cte prev on prev.RowNum = cur.RowNum + 1
...但它不工作:(
任何人都可以帮忙吗?
我正在使用 SQL Server 2005!
提前致谢!