Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Tách tổng giá trị dương và âm thành hai cột riêng trong MySQL

Sử dụng CASE WHEN bên trong SUM() để tách riêng tổng dương và tổng âm.

Tạo bảng và dữ liệu

mysql> CREATE TABLE DemoTable(Id INT, Value INT); 
Query OK, 0 rows affected (0.51 sec)

mysql> INSERT INTO DemoTable VALUES(10, 100); 
Query OK, 1 row affected (0.15 sec)
mysql> INSERT INTO DemoTable VALUES(10, -110); 
Query OK, 1 row affected (0.10 sec)
mysql> INSERT INTO DemoTable VALUES(10, 200); 
Query OK, 1 row affected (0.10 sec)
mysql> INSERT INTO DemoTable VALUES(10, -678); 
Query OK, 1 row affected (0.17 sec)

Truy vấn tách tổng dương/âm

mysql> SELECT Id,
    SUM(CASE WHEN Value > 0 THEN Value ELSE 0 END) AS Positive_Value,
    SUM(CASE WHEN Value < 0 THEN Value ELSE 0 END) AS Negative_Value
    FROM DemoTable
    GROUP BY Id;

Kết quả:

+------+----------------+----------------+
| Id   | Positive_Value | Negative_Value |
+------+----------------+----------------+
| 10   | 300            | -788           |
+------+----------------+----------------+
1 row in set (0.00 sec)

Ứng dụng: Kế toán (thu/chi), thống kê biến động giá cổ phiếu, cân đối sổ sách.