如何使用SQL进行SUM和SUBTRACT?

Tha*_*csc 25 mysql sql aggregate-functions

我使用MySQL,我有两个表:

master_table

  • 订单号
  • 项目
  • QTY

stock_bal

  • 项目
  • BAL_QTY

主表具有重复ORDERNOITEM值.我总是QTY使用SQL'GROUP BY'子句.

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

Dev*_*rke 36

我想这就是你要找的东西.NEW_BALQTY从余额中减去的总和:

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
Run Code Online (Sandbox Code Playgroud)

如果要使用新余额更新项目余额,请使用以下命令:

UPDATE stock_bal
SET    BAL_QTY = BAL_QTY - (SELECT   SUM(QTY)
                            FROM     master_table
                            GROUP BY master_table.ORDERNO,
                                     master_table.ITEM)
Run Code Online (Sandbox Code Playgroud)

假设您向后发布减法; 它从天平中减去订单中的数量,这在不了解您的表格的情况下最有意义.如果我错了,只需交换这两个就改变它:

(SUM(master_table.QTY) - stock_bal.BAL_QTY) AS NEW_BAL
Run Code Online (Sandbox Code Playgroud)


Ale*_*ich 11

带有子查询的简单复制和粘贴示例,请注意,两个查询都应返回 1 行:

select
(select sum(items_1) from items_table_1 where ...)
-
(select sum(items_2) from items_table_1 where ...) 

as difference
Run Code Online (Sandbox Code Playgroud)