Puede ser un poco rebuscado según quien lo haga... seguramente hay otras formas
pero:
CREATE TABLE foo
(
id numeric,
fecha date,
cant numeric
);
INSERT INTO foo SELECT 1, TO_DATE('01022010','DDMMYYYY'), 10;
INSERT INTO foo SELECT 2, TO_DATE('03022010','DDMMYYYY'), 5;
INSERT INTO foo SELECT 3, TO_DATE('04022010','DDMMYYYY'), 4;
INSERT INTO foo SELECT 4, TO_DATE('05022010','DDMMYYYY'), 2;
SELECT id,
fecha,
cant
FROM foo
UNION
SELECT id,
fecha,
cant
FROM ( SELECT NULL::NUMERIC id,
generate_series(1, (SELECT
max(fecha)-min(fecha)
FROM
foo) )+(SELECT min(fecha)
FROM foo)::DATE fecha,
::NUMERIC cant) x
WHERE x.fecha < (SELECT max(fecha)
FROM foo)
AND x.fecha NOT IN ( SELECT fecha
FROM foo)
ORDER BY 2
Saludos,
________________________________
De: [email protected]
[mailto:[email protected]] En nombre de Virginia
Enviado el: Lunes, 02 de Mayo de 2011 12:38 p.m.
Para: Ayuda
Asunto: [pgsql-es-ayuda] completar un intervalo de fechas en select
Buen día Lista!!!
Tengo una tabla que me arroja el siguiente resultado al ejecutar el select:
id date count
1 2/1/2010 10
2 2/3/2010 5
3 2/4/2010 4
4 2/5/2010 2
Mi pregunta es: Hay alguna manera de que en el SELECT pueda completar el
intervalo y colocar las fechas
2/2/2010 y 2/6/2010 de la siguiente manera:
id date count
1 2/1/2010 10
2/2/2010 0
2 2/3/2010 5
3 2/4/2010 4
4 2/5/2010 2
2/6/2010 0
Gracias de Antemano
-------------------------------------------
Virginia
-------------------------------------------