У меня есть таблица запасов, и я хотел бы создать отчет, который покажет, как часто заказывались товары.
таблица «сток»:
item_id | pcs | operation
apples | 100 | order
oranges | 50 | order
apples | -100 | delivery
pears | 100 | order
oranges | -40 | delivery
apples | 50 | order
apples | 50 | delivery
В основном мне нужно объединить эти два запроса.
Запрос, который печатает остатки на складе:
SELECT stock.item_id, Sum(stock.pcs) AS stock_balance
FROM stock
GROUP BY stock.item_id;
Запрос, который печатает статистику продаж
SELECT stock.item_id, Sum(stock.pcs) AS pcs_ordered, Count(stock.item_id) AS number_of_orders
FROM stock
GROUP BY stock.item_id, stock.operation
HAVING stock.operation="order";
Я думаю, что какой-то тип JOIN справился бы с этой задачей, но я понятия не имею, как склеивать запросы.
Желаемый вывод:
item_id | stock_balance | pcs_ordered | number_of_orders
apples | 0 | 150 | 2
oranges | 10 | 50 | 1
pears | 100 | 100 | 1
Это всего лишь пример. Может быть, мне нужно будет добавить больше условий, потому что есть больше столбцов. Существует ли универсальная техника объединения нескольких запросов?