У меня есть таблица с некоторыми входящими и исходящими данными.
+====+===========+==========+============+
| id | flow(int) | quantity | product_id |
+====+===========+==========+============+
| 1 | 0 | 100 | 1 |
+----+-----------+----------+------------+
| 2 | 1 | 20 | 1 |
+----+-----------+----------+------------+
| 3 | 1 | 30 | 1 |
+----+-----------+----------+------------+
| 4 | 0 | 10 | 1 |
+----+-----------+----------+------------+
| 5 | 1 | 30 | 2 |
+----+-----------+----------+------------+
| 6 | 2 | 10 | 2 |
+----+-----------+----------+------------+
| 7 | 0 | 10 | 2 |
+====+===========+==========+============+
Поток столбца - это тип enum, 0 - входящий, 1 и 2 - исходящий.
Как узнать текущий «баланс» конкретного продукта?
Продукт 1 должен иметь «баланс» 60 = входящий (100) - исходящий (20) - исходящий (30) + входящий (10).
И Продукт 2 должен иметь -30 «баланс» = исходящий (30) - исходящий (10) - входящий (10).
Можно ли сделать один эффективный способ одним запросом?