How to SUM and SUBTRACT using SQL?

前端 未结 6 1439
甜味超标
甜味超标 2020-12-09 08:09

I am using MySQL and I have two tables:

master_table

  • ORDERNO
  • ITEM
  • QTY

stock_bal

6条回答
  •  一生所求
    2020-12-09 08:21

    I think this is what you're looking for. NEW_BAL is the sum of QTYs subtracted from the balance:

    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
    

    If you want to update the item balance with the new balance, use the following:

    UPDATE stock_bal
    SET    BAL_QTY = BAL_QTY - (SELECT   SUM(QTY)
                                FROM     master_table
                                GROUP BY master_table.ORDERNO,
                                         master_table.ITEM)
    

    This assumes you posted the subtraction backward; it subtracts the quantities in the order from the balance, which makes the most sense without knowing more about your tables. Just swap those two to change it if I was wrong:

    (SUM(master_table.QTY) - stock_bal.BAL_QTY) AS NEW_BAL
    

提交回复
热议问题