Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak SUM i ODEJMOWAĆ za pomocą SQL?

Myślę, że tego właśnie szukasz. NEW_BAL to suma QTY s odjęte od salda:

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

Jeśli chcesz zaktualizować saldo pozycji o nowe saldo, skorzystaj z następujących czynności:

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

Zakładamy, że odejmowanie zostało wysłane wstecz; odejmuje ilości w kolejności od salda, co ma największy sens bez wiedzy o stołach. Po prostu zamień te dwa, aby to zmienić, jeśli się myliłem:

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wstawiaj dane z jednej tabeli do drugiej w MySQL

  2. Jak przechowywać zamówienia?

  3. Zamów wiele kolumn ASC

  4. Jak znaleźć hasło roota MySQL?

  5. Jak sprawić, by UTF-8 działał w aplikacjach internetowych Java?