You are on page 1of 1

http://dba.stackexchange.

com/questions/56378/update-column-with-the-sum-of-column-
in-previous-rows-in-mysql

SET @a = 'z', @b = 'z';

UPDATE table AS q
JOIN
(
SELECT w.id
,w.amount
,w.balance
,w.account
,IF(@a = @a := w.account, @b := @b, @b := 0 ) AS foo
,IF(@b='z', @b := w.amount, @b := @b + w.amount) AS newbalance
FROM table AS w
ORDER BY w.account, w.id
) AS z ON q.id = z.id
SET q.balance = z.newbalance;

SET @rt = 0;
SET @ndx = 0;
SET @given_account = 1;
UPDATE
nuoji A INNER JOIN
(
SELECT * FROM
(
SELECT
(@ndx:=@ndx+1) ndx,id,
amount,(@rt:=@rt+amount) newbalance
FROM nuoji
WHERE account=@given_account
) BB
) B USING (id)
SET A.balance=B.newbalance;

You might also like