Я разрабатываю приложение управления запасами, используя и использую СУБД MySQL с механизмом InnoDB, в настоящее время я хочу сгенерировать отчет, который вычисляет физическую величину для продуктов, вычисляя разницу между SUM столбца IN_OUT, используя запрос MySQL.Как вычислить физическую величину, вычисляя разницу между IN и OUT
Я использую значение "1" в in_out_products, как в и "0" в качестве OUT
так что нужен столбец, который имеет разность между OUT и IN
IN - OUT = физическая величина для каждого продукта
в более ясной форме я имею в виду разницу между SUM (количество), где IN_OUT = 1 и СУММА (количество), где IN_OUT = 0, IN_OUT столбец в таблице in_out_products
первая таблица
select * from products;
+------------+--------------+-------------+----------------+-------+------------+
| product_id | product_code | part_number | product_name | brand | location |
+------------+--------------+-------------+----------------+-------+------------+
| 1 | 100100 | 100200 | RICHO maginate | RICHO | location 4 |
| 2 | 1112211 | 100300 | RICHO Cyan | RICHO | location 4 |
| 3 | 111333 | 100400 | RICHO Yellow | RICHO | location 4 |
+------------+--------------+-------------+----------------+-------+------------+
второй стол
+-----------+------------+--------------+-------------+----------+--------+
| record_id | product_id | product_code | part_number | quantity | in_out |
+-----------+------------+--------------+-------------+----------+--------+
| 1 | 1 | 100100 | 100200 | 10 | 1 |
| 2 | 1 | 100100 | 100200 | 10 | 1 |
| 3 | 1 | 100100 | 100200 | 30 | 1 |
| 4 | 2 | 1112211 | 100300 | 10 | 1 |
| 5 | 2 | 1112211 | 100300 | 10 | 1 |
| 6 | 2 | 1112211 | 100300 | 10 | 1 |
| 7 | 2 | 1112211 | 100300 | 10 | 1 |
| 8 | 3 | 111333 | 100400 | 10 | 1 |
| 9 | 3 | 111333 | 100400 | 10 | 1 |
| 10 | 3 | 111333 | 100400 | 10 | 1 |
+-----------+------------+--------------+-------------+----------+--------+
теперь я хочу, чтобы создать SQL-запрос, который отобразить все продукты там с текущим количеством, я не сумел, что до сих пор мне удалось получить количество с использованием этого запрос.
SQL запрос расчета количества для каждого продукта:
select p.product_id,
p.product_id,
p.product_code,
p.product_name,
SUM(io.quantity) as physical_quantity
from products as p,
in_out_products as io where p.product_id=io.product_id and io.deleted_at is null and in_out=1 group by p.product_id;
результат
+------------+------------+--------------+----------------+-------------------+ | product_id | product_id | product_code | product_name | physical_quantity | +------------+------------+--------------+----------------+-------------------+ | 1 | 1 | 100100 | RICHO maginate | 50 | | 2 | 2 | 1112211 | RICHO Cyan | 40 | | 3 | 3 | 111333 | RICHO Yellow | 30 | +------------+------------+--------------+----------------+-------------------+
Что вы имеете в виду ** отображение всех продуктов с текущим количеством **. Можете ли вы добавить ожидаемый результат –
, что я хочу сказать, что хочу получить разницу между SUM (количество), где in_out = 1 и SUM (количество), где in_out = 0, этот столбец в таблице in_out_products –