Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Come ottenere somma cumulativa

select t1.id, t1.SomeNumt, SUM(t2.SomeNumt) as sum
from @t t1
inner join @t t2 on t1.id >= t2.id
group by t1.id, t1.SomeNumt
order by t1.id

Esempio di SQL Fiddle

Risultato

| ID | SOMENUMT | SUM |
-----------------------
|  1 |       10 |  10 |
|  2 |       12 |  22 |
|  3 |        3 |  25 |
|  4 |       15 |  40 |
|  5 |       23 |  63 |

Modifica: questa è una soluzione generalizzata che funzionerà sulla maggior parte delle piattaforme db. Quando è disponibile una soluzione migliore per la tua piattaforma specifica (ad es. Gareth's), usala!