次のように設定された一時テーブルがあります。
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 を使用しています。
前もって感謝します!