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: pgsql-es-ayuda-ow...@postgresql.org 
[mailto:pgsql-es-ayuda-ow...@postgresql.org] 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
-------------------------------------------

Responder a