Tôi nghĩ đây là những gì bạn đang tìm kiếm. NEW_BAL
là tổng của QTY
s được trừ vào số dư:
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
Nếu bạn muốn cập nhật số dư mặt hàng với số dư mới, hãy sử dụng như sau:
UPDATE stock_bal
SET BAL_QTY = BAL_QTY - (SELECT SUM(QTY)
FROM master_table
GROUP BY master_table.ORDERNO,
master_table.ITEM)
Điều này giả sử bạn đã đăng ngược phép trừ; nó trừ các đại lượng theo thứ tự ra khỏi số dư, điều này có ý nghĩa nhất mà không cần biết thêm về các bảng của bạn. Chỉ cần hoán đổi hai thứ đó để thay đổi nó nếu tôi sai:
(SUM(master_table.QTY) - stock_bal.BAL_QTY) AS NEW_BAL