Llenar la fechas faltantes

En sql express 2005. En una tabla tengo lo siguiente
Id fecha datos
1               01/01/1900             abc
2               05/01/1900             def
3               10/01/1900             ghi
Y que al escribir un rango de fechas supongamos 01/01/1900 al 15/01/1900 quiero que me regrese
01/01/1900          abc
02/01/1900          na
03/01/1900          na
04/01/1900          na
05/01/1900          def
06/01/1900          na
07/01/1900          na
08/01/1900          na
09/01/1900          na
10/01/1900          ghi
11/01/1900          na
12/01/1900          na
13/01/1900          na
14/01/1900          na
15/01/1900          na

1 Respuesta

Respuesta
Te envío la solución a tu pregunta, donde @data es tu tabla, pero no use el id, y @tiempo es una tabla que creo para cargar los datos del rango de fechas, luego es un qry normal.
Declare @data table (fecha datetime, datos varchar(10))
insert into @data values('01/01/2009', 'val 1')
insert into @data values('01/15/2009', 'val 2')
insert into @data values('01/17/2009', 'val 3')
declare @tiempo table (dimtiempoid datetime, val char(2))
declare @fecha_inicio datetime, @fecha_fin datetime
set @fecha_inicio= '01/01/2009'
set @fecha_fin= '01/30/2009'
while @fecha_inicio<= @fecha_fin
begin
    insert into @tiempo
    values (@fecha_inicio, 'na')
    set @fecha_inicio= @fecha_inicio+ 1
end
select    b.dimtiempoid, isnull(a.datos, b.val) datos
from    @data a right join @tiempo b on a.fecha= b.dimtiempoid
Olvide comentarte, el formato de fecha que uso esta ingles porque mi bd esta en ingles, si quieres probar ese qry en tu servidor, puedes copiar y pegar, y cambiar el lenguaje de tu conexión actual o cambiar el formato de fecha que pongo invirtiendo el mes por día.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas