sql >> Databasteknik >  >> RDS >> Mysql

Hur man summerar och subtraherar med SQL?

Jag tror att det här är vad du letar efter. NEW_BAL är summan av QTY s subtraherad från saldot:

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

Om du vill uppdatera artikelsaldot med det nya saldot, använd följande:

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

Detta förutsätter att du postade subtraktionen baklänges; det subtraherar kvantiteterna i ordningen från saldot, vilket är mest vettigt utan att veta mer om dina tabeller. Byt bara ut dessa två för att ändra det om jag hade fel:

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


  1. Förklara MySQL Joins på ett enkelt språk

  2. Vad är det bästa sättet att hantera DBNull's

  3. Använd DB_ID() för att returnera ID:t för en databas i SQL Server

  4. Spring Boot + docker-compose + MySQL:Anslutningen nekades