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

SQL:totale parziale quando i dati sono già raggruppati

Il modo standard ANSI per fare una somma cumulativa è:

select t.*, sum(totalpmtamt) over (order by mdate) as runningsum
from #testdata t
order by t.mdate;

Non tutti i database supportano questa funzionalità.

Se il tuo database non supporta tale funzionalità, sceglierei una sottoquery correlata:

select t.*,
       (select sum(t2.totalpmtamt)
        from #testdata t2
        where t2.mdate <= t.mdate
       ) as runningsum
from #testdata
order by t.mdate;