sql >> Database >  >> RDS >> Mysql

SQL/MySQL:een hoeveelheidswaarde op datum in meerdere rijen splitsen

Mocht u besluiten te upgraden naar MySQL 8.0, dan is hier een recursieve CTE die een lijst genereert van alle dagen tussen planning_start_date en planning_end_date samen met de vereiste dagelijkse hoeveelheid:

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 op dbfiddle



  1. MySQL-rangschikking in het geval van banden

  2. Hoe gebruik ik de huidige datum in een HQL-query met een Oracle-database?

  3. Een teller verhogen en de waarde retourneren in MySQL

  4. Intervalboom opslaan en opvragen in PostgreSQL