SQL - Crear un nuevo registro por cada dia de un rango de fechas

 
Vista:

Crear un nuevo registro por cada dia de un rango de fechas

Publicado por Jorge (1 intervención) el 21/10/2020 10:05:05
Estoy intentado crear una nueva línea por cada día de un rango de fechas.

Funciona con esto

1
2
3
4
5
6
7
8
9
10
11
12
13
14
WITH cte_fecha AS (
        SELECT campo1,campo2,campo3,Desde[date],Hasta
        FROM mi_tabla
 
        UNION ALL
 
        SELECT campo1,campo2,campo3,dateadd(day,1,d.[date]) AS [date],Hasta
        FROM cte_fecha d
        WHERE d.[date] < d.Hasta
 
    )
    SELECT campo1,campo2,campo3,date
    FROM cte_fecha
    option (maxrecursion 0);

Hay alguna forma de hacerlo igual y que sea más eficiente.
La tabla resultante es de unos 10 millones de registros, y tarda una eternidad por ese método.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder