MySQL выбрать левое объединение нескольких таблиц сумма и группа по дает повторный ответ - PullRequest
0 голосов
/ 18 октября 2019

У меня есть три таблицы

Таблица 1: позиция

id  item
5   pen
6   pencil

Таблица 2: покупка

id  item    qty    item_id
1   pen     10     5
2   pencil  10     6
3   pen     10     5

Таблица 3: продажа

id  item    qty    item_id
1   pen     5      5

Я хочу получить следующий результат:

Требуемый результат:

item    purchase    sale    stock
pen     20          5       15
pencil  10          0       10

1 Ответ

0 голосов
/ 18 октября 2019

Вы можете попробовать запрос ниже -

SELECT P.item, P.purchase, IFNULL(S.sale, 0), P.purchase - IFNULL(S.sale, 0) stock
FROM (SELECT item, SUM(qty) purchase
      FROM purchase
      GROUP BY item) P
LEFT JOIN (SELECT item, SUM(qty) sale
           FROM sale
           GROUP BY item) S ON P.item = S.item
...