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

Tổng hợp số lượng tháng hiện tại trong MySQL với SUM và MONTH

Sử dụng SUM(cot_so) kết hợp WHERE MONTH(cot_ngay) = MONTH(CURDATE()) để tổng các bản ghi rơi vào tháng hiện tại.

Ví dụ minh họa

Tạo bảng giao dịch:

mysql> CREATE TABLE DemoTable1889 (DueDate DATE, Amount INT);
mysql> INSERT INTO DemoTable1889 VALUES('2019-12-11',500),('2019-11-11',1000),('2018-12-04',700),('2017-12-10',300);

Giả sử hôm nay 2019-12-10. Tổng Amount tháng 12:

mysql> SELECT SUM(Amount) FROM DemoTable1889 WHERE MONTH(DueDate) = MONTH(CURDATE());

Kết quả (500+700+300=1500):

+-------------+
| SUM(Amount) |
+-------------+
|        1500 |
+-------------+

Tối ưu: Tránh hàm trên cột trong WHERE. Dùng phạm vi: WHERE DueDate >= DATE_FORMAT(CURDATE(), '%Y-%m-01') AND DueDate < DATE_FORMAT(CURDATE() + INTERVAL 1 MONTH, '%Y-%m-01') để dùng index.