Phần 5 — đóng gói báo cáo thành Stored Procedure. Tạo procedure sp_MonthlyReport với 2 tham số INPUT: year (INT) và month (INT, 1–12).
Procedure trả về thống kê mỗi ngày trong tháng đó: trade_date, trade_count, total_value (tổng quantity * price), sắp theo trade_date. Chỉ có ngày nào có giao dịch mới xuất hiện.
Để index trên trade_date dùng được, hãy tính đầu tháng (month_start) và đầu tháng kế tiếp rồi lọc trade_date >= month_start AND trade_date < month_start + 1 tháng (không dùng YEAR()/MONTH() trên cột).
DATEFROMPARTS(@year, @month, 1), DATEADD(MONTH, 1, ...).STR_TO_DATE(CONCAT(p_year, '-', p_month, '-01'), '%Y-%m-%d'), DATE_ADD(..., INTERVAL 1 MONTH).Hệ thống chấm gọi procedure với năm/tháng của giao dịch mới nhất trong bảng Trades.
Bảng Trades.
trade_date, trade_count, total_value (TAB), sắp theo trade_date.
Ví dụ:
Đầu vào:
Đầu ra:
2026-09-14 5 87800000.00
2026-09-15 5 473000000.00
2026-09-16 4 377250000.00
2026-09-17 2 189000000.00
2026-09-18 7 475450000.00
2026-09-21 6 247075000.00
2026-09-22 7 184500000.00
2026-09-23 3 56900000.00
2026-09-24 10 515100000.00
2026-09-25 4 120700000.00
Giải thích:
Đang tải editor...