U kunt een variabele gebruiken om het cumulatieve bedrag vast te houden:
SELECT ID,
@s := IF(ACTION_TYPE='ADD', @s + ACTION_QTY, @s - ACTION_QTY) AS BALANCE,
ACTION_QTY,
ACTION_TYPE
FROM tableA
CROSS JOIN (SELECT @s := 0) AS var
ORDER BY ID
De bovenstaande zoekopdracht gaat ervan uit dat er slechts twee soorten ACTION_TYPE
. zijn waarden, namelijk 'ADD'
en 'DEDUCT'
. Dus als ACTION_TYPE
is niet gelijk aan 'ADD'
, dan is het gelijk aan 'DEDUCT'
.