Her er en måde at gøre det på med en CTE i stedet for en markør:
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
Bemærk, at dette er sorteret efter faldende Count
ligesom dit prøveresultat gør. Hvis der er en anden kolonne, der ikke er vist, som skal bruges til bestilling, skal du bare erstatte Count
i hver af ORDER BY
klausuler.