Cách tính tổng tích lũy theo tiêu chuẩn ANSI là:
select t.*, sum(totalpmtamt) over (order by mdate) as runningsum
from #testdata t
order by t.mdate;
Không phải tất cả các cơ sở dữ liệu đều hỗ trợ chức năng này.
Nếu cơ sở dữ liệu của bạn không hỗ trợ chức năng đó, tôi sẽ tìm một truy vấn con tương quan:
select t.*,
(select sum(t2.totalpmtamt)
from #testdata t2
where t2.mdate <= t.mdate
) as runningsum
from #testdata
order by t.mdate;