sql >> Base de Datos >  >> RDS >> Sqlserver

¿Cómo llenar fechas y valores faltantes en datos particionados?

Primero, necesitas generar las fechas. Luego puede generar todas las combinaciones de fecha y nombre. Finalmente, complete los valores. Aquí hay un ejemplo usando cross apply :

with dates as (
      select @MINDATE as thedate
      union all
      select dateadd(day, 1, thedate)
      from dates
      where dateadd(day, 1, thedate) <= getdate()
     )
select thedate, vals.val
from dates cross join
     (select distinct name from hypothetical) h cross apply
     (select top 1 val
      from hypothetical h2
      where h2.name = h.name and h2.date <= dates.thedate
      order by date desc
     ) vals;