La manière standard ANSI de faire une somme cumulée est :
select t.*, sum(totalpmtamt) over (order by mdate) as runningsum
from #testdata t
order by t.mdate;
Toutes les bases de données ne prennent pas en charge cette fonctionnalité.
Si votre base de données ne prend pas en charge cette fonctionnalité, j'opterais pour une sous-requête corrélée :
select t.*,
(select sum(t2.totalpmtamt)
from #testdata t2
where t2.mdate <= t.mdate
) as runningsum
from #testdata
order by t.mdate;