sql >> Databáze >  >> RDS >> Sqlserver

SQL – jak vygeneruji řádky pro každý měsíc na základě rozsahů dat v existující datové sadě?

Považuji za nejjednodušší přistupovat k těmto problémům vytvořením seznamu celých čísel a pomocí toho zvýšit data. Zde je příklad:

with nums as (
      select 0 as n
      union all
      select n + 1 as n
      from nums
      where n < 11
     )
select rowid, datestart, dateend,
       year(dateadd(month, n.n, datestart)) as yr,
       month(dateadd(month, n.n, datestart)) as mon
from table t join
     nums n
     on dateadd(month, n.n - 1, datestart) <= dateend;


  1. mysql insert race condition

  2. Počet sloupců neodpovídá počtu hodnot na řádku, ale odpovídá

  3. Jak funguje justify_hours() v PostgreSQL

  4. Nesprávná hodnota data a času při nastavování Django s MySQL