Расчет промежуточного итога/текущего баланса

У меня есть стол:

create table Transactions(Tid int,amt int)

С 5 рядами:

insert into Transactions values(1, 100)
insert into Transactions values(2, -50)
insert into Transactions values(3, 100)
insert into Transactions values(4, -100)
insert into Transactions values(5, 200)

Желаемый выход:

TID  amt  balance
--- ----- -------
1    100   100
2    -50    50
3    100   150
4   -100    50
5    200   250

В основном для первой записи баланс будет таким же, как amt, 2-й и далее баланс будет добавлением предыдущего баланса + текущего баланса amt. Я ищу оптимальный подход. Я мог подумать об использовании функции или коррелированного подзапроса, но точно не знал, как это сделать.

53
задан Aaron Bertrand 4 July 2012 в 03:31
поделиться