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.