Mysql
 sql >> Datenbank >  >> RDS >> Mysql

SQL/MySQL:Aufteilen eines Mengenwerts in mehrere Zeilen nach Datum

Sollten Sie sich für ein Upgrade auf MySQL 8.0 entscheiden, finden Sie hier einen rekursiven CTE, der eine Liste aller Tage zwischen planning_start_date generiert und planning_end_date zusammen mit der erforderlichen Tagesmenge:

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`

Demo auf dbfiddle