Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Làm thế nào để TỔNG và SUBTRACT bằng cách sử dụng SQL?

Tôi nghĩ đây là những gì bạn đang tìm kiếm. NEW_BAL là tổng của QTY s được trừ vào số dư:

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

Nếu bạn muốn cập nhật số dư mặt hàng với số dư mới, hãy sử dụng như sau:

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

Điều này giả sử bạn đã đăng ngược phép trừ; nó trừ các đại lượng theo thứ tự ra khỏi số dư, điều này có ý nghĩa nhất mà không cần biết thêm về các bảng của bạn. Chỉ cần hoán đổi hai thứ đó để thay đổi nó nếu tôi sai:

(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. Các dấu ngoặc kép xung quanh các bảng và cột trong truy vấn MySQL có thực sự cần thiết không?

  2. Thêm ràng buộc duy nhất dựa trên giá trị trường

  3. Xóa các hàng trùng lặp khỏi bảng

  4. MySQL dual master

  5. Tên lược đồ MySQL có dấu gạch ngang không cho phép tôi thực hiện truy vấn dòng lệnh