Try this:
DECLARE @myValues TABLE (ID INT IDENTITY(1,1), A INT)
INSERT INTO @myValues (A)
SELECT 5 AS A
UNION ALL SELECT 6
UNION ALL SELECT 3
;WITH CTEBalance
AS
(
SELECT ID, A
FROM @myValues
)
SELECT B.ID, B.A, SUM(C.A) AS Balance
FROM CTEBalance AS B INNER JOIN CTEBalance AS C ON B.ID >= C.ID
GROUP BY B.ID, B.A
ORDER BY B.ID
or
SELECT t1.ID, SUM(t2.A) AS Balance
FROM @myValues AS t1 INNER JOIN @myValues AS t2 ON t1.ID >= t2.ID
GROUP BY t1.ID
ORDER BY t1.ID
Result:
ID A Balance
1 5 5
2 6 11
3 3 14
If you do not have ID field, you need to use
ROW_NUMBER()[
^] function. In case of trouble, let me know.