Để tính tổng giá trị tồn kho hoặc doanh thu (Số lượng × Đơn giá) cho toàn bộ bảng sản phẩm, dùng hàm tổng hợp SUM() trên biểu thức nhân hai cột.
Tạo bảng sản phẩm
mysql> CREATE TABLE DemoTable (
ProductId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
ProductQuantity INT,
ProductPrice INT
);
Chèn dữ liệu
mysql> INSERT INTO DemoTable (ProductQuantity, ProductPrice) VALUES
(10, 100), (5, 11), (3, 140), (2, 450);
Dữ liệu
mysql> SELECT * FROM DemoTable;
+-----------+-----------------+--------------+
| ProductId | ProductQuantity | ProductPrice |
+-----------+-----------------+--------------+
| 1 | 10 | 100 |
| 2 | 5 | 11 |
| 3 | 3 | 140 |
| 4 | 2 | 450 |
+-----------+-----------------+--------------+
Truy vấn tính tổng giá trị
mysql> SELECT SUM(ProductQuantity * ProductPrice) AS Total_of_Products FROM DemoTable;
Kết quả
+-------------------+
| Total_of_Products |
+-------------------+
| 2375 |
+-------------------+
Chi tiết tính toán
- Sản phẩm 1: 10 × 100 = 1,000
- Sản phẩm 2: 5 × 11 = 55
- Sản phẩm 3: 3 × 140 = 420
- Sản phẩm 4: 2 × 450 = 900
- Tổng: 1,000 + 55 + 420 + 900 = 2,375
Mở rộng: Tính tổng theo nhóm (GROUP BY)
Nếu bảng có cột Category, tính tổng theo danh mục:
SELECT Category, SUM(ProductQuantity * ProductPrice) AS Total_Value
FROM Products GROUP BY Category;
Lưu ý: SUM() bỏ qua NULL. Nếu Quantity hoặc Price có NULL, hàng đó đóng góp 0 vào tổng (vì NULL * số = NULL, SUM bỏ qua NULL). Dùng COALESCE(Quantity,0) * COALESCE(Price,0) nếu muốn coi NULL như 0.