SELECT * FROM quantity;
+----+-----------+------------+-------------+
| id | productid | inquantity | outquantity |
+----+-----------+------------+-------------+
| 1 | 1 | 100 | 0 |
| 2 | 1 | 10 | 0 |
| 3 | 1 | 0 | 50 |
| 4 | 1 | 0 | 100 |
| 5 | 2 | 200 | 0 |
| 6 | 2 | 0 | 200 |
| 7 | 2 | 15 | 0 |
| 8 | 3 | 100 | 0 |
| 9 | 3 | 50 | 0 |
| 10 | 3 | 0 | 5 |
+----+-----------+------------+-------------+
рассчитать количество для конкретного продукта я сделать этоSQL сбросить значение переменной, если идентификатор изменения
SELECT
id , productid,
inquantity,
outquantity,
@qty:= (@qty+inquantity)-outquantity as qty
from quantity,(select @qty:= 0)r
WHERE productid=1;
+----+-----------+------------+-------------+-----+
| id | productid | inquantity | outquantity | qty |
+----+-----------+------------+-------------+-----+
| 1 | 1 | 100 | 0 | 100 |
| 2 | 1 | 10 | 0 | 110 |
| 3 | 1 | 0 | 50 | 60 |
| 4 | 1 | 0 | 100 | -40 |
+----+-----------+------------+-------------+-----+
Можно ли вычислить это для всех PRODUCTID-х годов? Как сбросить переменную @qty для начала с 0, если productid отличается от частного?
Чтобы получить это:
+----+-----------+------------+-------------+-----+
| id | productid | inquantity | outquantity | qty |
+----+-----------+------------+-------------+-----+
| 1 | 1 | 100 | 0 | 100 |
| 2 | 1 | 10 | 0 | 110 |
| 3 | 1 | 0 | 50 | 60 |
| 4 | 1 | 0 | 100 | -40 |
| 5 | 2 | 200 | 0 | 200 |
| 6 | 2 | 0 | 200 | 0 |
| 7 | 2 | 15 | 0 | 15 |
| 8 | 3 | 100 | 0 | 100 |
| 9 | 3 | 50 | 0 | 150 |
| 10 | 3 | 0 | 5 | 145 |
+----+-----------+------------+-------------+-----+