カーソルの代わりに CTE を使用する方法は次のとおりです:
WITH Base AS ( SELECT ROW_NUMBER() OVER (ORDER BY [Count] DESC) RowNum, [Dept], [Count] FROM SR ) SELECT SR.Dept, SR.Count, SUM(SR2.[Count]) Total FROM Base SR INNER JOIN Base SR2 ON SR2.RowNum <= SR.RowNum GROUP BY SR.Dept, SR.Count ORDER BY SR.[Count] DESCプレ>これは
Countの降順であることに注意してください あなたのサンプル結果のように。表示されていない他の列があり、注文に使用する必要がある場合は、Countを置き換えてください。ORDER BYのそれぞれで