Мне нужно посчитать количество предметов, оставшихся в инвентаре, но я не знаю, как это сделать.
- Предметы
ITEM_ID ITEM_BARCODE ITEM_NAME ITEM_ROP
-------------------------------------------------
101 76164231 Marlboro 20 20
102 76164217 Marlboro B 20 10
103 9555192501305 Juicy Fruit 5
104 9300682016278 M & M Crispy 5
- Акции
STOCK_ID ITEM_ID STOCK_QUANTITY STOCK_DATE
----------------------------------------------
001 101 20 01-JUL-18
002 104 30 02-JUL-18
003 101 50 02-JUL-18
004 104 20 05-JUL-18
005 103 45 06-JUL-18
- Продажа
SALES_ID ITEM_ID SALES_QUANTITY SALES_DATE
----------------------------------------------
001 101 20 02-JUL-18
002 104 30 02-JUL-18
003 101 35 03-JUL-18
004 103 20 09-JUL-18
И должно быть два результата, первый, как показано ниже, где он будет производить количество товара, оставленное на основе таблицы Запасы и Продажи. Таблицы запасов будут вести учет количества товара. В то же время в таблице «Продажи» будет храниться запись количества товара, который был продан (STOCK_QUANTITY - SALES_QUANTITY).
ITEM_BARCODE ITEM_NAME QUANTITY
------------------------------------------
76164231 Marlboro 20 15
76164217 Marlboro B 20 0
9555192501305 Juicy Fruit 25
9300682016278 M & M Crispy 20
Второй вывод - это то, где он будет отображаться в зависимости от того, какой элемент ниже точки переупорядочения (ROP), как в таблице Предметы
ITEM_BARCODE ITEM_NAME QUANTITY ROP
----------------------------------------------
76164231 Marlboro 20 15 20
76164217 Marlboro B 20 0 10
SELECT T.STOCK_DATE,
I.ITEM_BARCODE,
I.ITEM_NAME,
SUM(T.STOCK_QUANTITY) - SUM(S.SALES_QUANTITY) AS QUANTITY
FROM ITEMS I
INNER
JOIN STOCKS T
ON I.ITEM_ID = T.ITEM_ID
LEFT
JOIN SALES S
ON I.ITEM_ID = S.ITEM_ID
GROUP
BY I.ITEM_BARCODE,
T.STOCK_DATE,
I.ITEM_NAME
ORDER
BY T.STOCK_DATE;
Кто-нибудь может мне помочь с этим? Большое вам спасибо.