Nếu bạn quyết định nâng cấp lên MySQL 8.0, đây là CTE đệ quy sẽ tạo danh sách tất cả các ngày giữa planning_start_date
và planning_end_date
cùng với số lượng yêu cầu hàng ngày:
WITH RECURSIVE cte AS (
SELECT planning_start_date AS date,
planning_end_date,
quantity / (DATEDIFF(planning_end_date, planning_start_date) + 1) AS daily_qty
FROM test
UNION ALL
SELECT date + INTERVAL 1 DAY, planning_end_date, daily_qty
FROM cte
WHERE date < planning_end_date
)
SELECT `date`, daily_qty
FROM cte
ORDER BY `date`