sql >> Databasteknik >  >> RDS >> Mysql

SQL/MySQL:dela upp ett kvantitetsvärde i flera rader efter datum

Om du skulle besluta dig för att uppgradera till MySQL 8.0, här är en rekursiv CTE som genererar en lista över alla dagar mellan planning_start_date och planning_end_date tillsammans med den nödvändiga dagliga kvantiteten:

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 på dbfiddle



  1. När uppdaterar MySQL indexen

  2. Laravel uppdatera/redigera med hjälp av foreach loop

  3. Hur byter man ut flera tecken i SQL?

  4. Inkludera RowId-värde i kapslad tabell