1 つのオプションは、再帰的な cte を使用することです (要件を正しく理解している場合):
WITH RNCTE AS ( SELECT *, ROW_NUMBER() OVER (PARTITION BY symbol ORDER BY date) rn FROM quotes ), CTE AS ( SELECT symbol, date, rn, cast(0 as decimal(10,2)) perc, closed FROM RNCTE WHERE rn = 1 UNION ALL SELECT r.symbol, r.date, r.rn, cast(c.closed/r.closed as decimal(10,2)) perc, r.closed FROM CTE c JOIN RNCTE r on c.symbol = r.symbol AND c.rn+1 = r.rn ) SELECT * FROM CTE ORDER BY symbol, date
プレ>パーセンテージの変化として使用する各シンボルの現在の合計が必要な場合は、その金額の追加の列を追加するのは簡単です-あなたの意図が完全にはわからなかったので、上記は現在のクローズ金額を以前の成約金額。