変数を使用して累積金額を保持できます:
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
上記のクエリは、ACTION_TYPE
のタイプが2つしかないことを前提としています。 値、つまり'ADD'
および'DEDUCT'
。したがって、ACTION_TYPE
'ADD'
と等しくありません 、それは'DEDUCT'
に等しい 。