Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Comment obtenir la somme cumulée

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

Exemple SQL Fiddle

Sortie

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

Modifier : il s'agit d'une solution généralisée qui fonctionnera sur la plupart des plates-formes db. Lorsqu'il existe une meilleure solution disponible pour votre plate-forme spécifique (par exemple, celle de gareth), utilisez-la !