Я думаю, это то, что вы ищете.NEW_BAL
- это сумма QTY
s, вычтенная из баланса:
SELECT master_table.ORDERNO,
master_table.ITEM,
SUM(master_table.QTY),
stock_bal.BAL_QTY,
(stock_bal.BAL_QTY - SUM(master_table.QTY)) AS NEW_BAL
FROM master_table INNER JOIN
stock_bal ON master_bal.ITEM = stock_bal.ITEM
GROUP BY master_table.ORDERNO,
master_table.ITEM
Если вы хотите обновить баланс элемента с новым балансом, используйте следующее:
UPDATE stock_bal
SET BAL_QTY = BAL_QTY - (SELECT SUM(QTY)
FROM master_table
GROUP BY master_table.ORDERNO,
master_table.ITEM)
Предполагается, что вы разместили вычитание в обратном направлении;он вычитает количества в заказе из баланса, что имеет смысл, не зная больше о ваших таблицах.Просто поменяйте местами эти два, если я ошибаюсь:
(SUM(master_table.QTY) - stock_bal.BAL_QTY) AS NEW_BAL