1. ホーム
  2. mysql

[解決済み] SQLを使用してSUMとSUBTRACTを行うには?

2022-03-13 01:42:34

質問

MySQLを使用していて、2つのテーブルを持っています。

master_table

  • ORDERNO
  • アイテム
  • 数量

stock_bal

  • ITEM
  • BAL_QTY

マスターテーブルが重複している ORDERNOITEM の値を指定します。私は、合計 QTY SQLの'GROUP BY'句を使用しています。

を差し引く必要があります。 BAL_QTY のSUMから ITEM (master_table)を使用します。 私は、SUM QTY の値がクエリで表示されます(実際には多くの行があります)。

どのように解決するのですか?

お探しのものは、これだと思います。 NEW_BAL の合計です。 QTY を差し引いた残高を表示します。

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)

これは、あなたが引き算を逆に投稿したと仮定しています。これは、バランスから順番に数量を引きますので、あなたのテーブルについて詳しく知らなくても、最も理にかなっていると思います。もし私が間違っていたら、この2つを入れ替えるだけで、変更できます。

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