一尘不染

如何使用SQL求和和减法?

mysql

我正在使用MySQL,并且有两个表:

master_table

  • 订单号
  • 项目
  • 数量

stock_bal

  • 项目
  • BAL_QTY

主表具有重复项ORDERNOITEM值。我QTY使用SQL’GROUP BY’子句获得总计。

我需要BAL_QTYITEM(master_table)的总和中扣除/减去。我有QTY使用查询的SUM 值(实际上有很多行)。


阅读 496

收藏
2020-05-17

共1个答案

一尘不染

我认为这就是您要寻找的。NEW_BALQTY从余额中减去的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
2020-05-17