From: | Jaime Casanova <systemguards(at)gmail(dot)com> |
---|---|
To: | Javier Bermúdez Tito <javier_bt(at)hotmail(dot)com> |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: Ayuda sobre left outer join |
Date: | 2006-02-08 04:40:03 |
Message-ID: | c2d9e70e0602072040v7a9cec04h5a4ac3adac81f3fe@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
On 2/7/06, Javier Bermúdez Tito <javier_bt(at)hotmail(dot)com> wrote:
>
> Holaaaa gentita ayuda si alguien me puede decir en que estoy fallando no me
> funciona bien el left outer join
> select plen.idccodso,
> (coalesce(plen.sccoapor,0) + coalesce(plen.sccopram,0) +
> coalesce(plen.sccoprin,0) + coalesce(plen.sccocred,0) +
> coalesce(plen.sccomocr,0) +
> coalesce(plen.sccoprmo,0) + coalesce(plen.sccofose,0) +
> coalesce(plen.sccoacti,0) + coalesce(plen.sccomult,0) +
> coalesce(plen.sccomant,0)) AS total_enviado,
> (coalesce(plef.sccoapor,0) + coalesce(plef.sccopram,0) +
> coalesce(plef.sccoprin,0) + coalesce(plef.sccocred,0) +
> coalesce(plef.sccomocr,0) + coalesce(plef.sccoprmo,0) +
> coalesce(plef.sccofose,0) + coalesce(plef.sccoacti,0) +
> coalesce(plef.sccomult,0) + coalesce(plef.sccomant,0)) AS total_efectuado
> from scoplaen plen left outer join scoplani plef using(idccodso)
> where plen.sccdfech BETWEEN '01/01/2006' and '31/01/2006' and
> plef.sccdfech BETWEEN '01/01/2006' and '31/01/2006'
>
> necesito que me muestre todos los registros de mi tabla scoplaen asi como
> tambien los registros que se encuentran en la tabla scoplani pero solo los
> que esten en la tabla scoplaen
> algo asi
> scoplaen
> 1 10.20 10/01/2006
> 2 25.30 25/01/2006
> 3 35.54 30/01/2006
> 4 45.60 05/02/2006
> scoplani
> 2 20.30 26/01/2006
> 4 25.54 06/02/2006
>
> deberia mostrarme los siguiente :
>
> scoplaen scoplani
> 1 10.20 NULL
> 2 25.30 20.30
> 3 35.54 NULL
>
> espero haberme explicado bien, necesito saber cual es el problema, lo que
> estube probando tambien era quitando todo el where y pues me hizo bien la
> consulta, pero necesito hacer que sea solo de un determinado periodo y
> cuando aplico el filtro pues me sale resultados inesperados, y
> necesariamente los registros que me devuelva de ambas tablas tienen que ser
> del mismo periodo bueno espero la respuesta de alguien gracias.
>
select plen.idccodso, (coalesce(plen.sccoapor,0) + coalesce(plen.sccopram,0) +
coalesce(plen.sccoprin,0) +
coalesce(plen.sccocred,0) +
coalesce(plen.sccomocr,0) +
coalesce(plen.sccoprmo,0) +
coalesce(plen.sccofose,0) +
coalesce(plen.sccoacti,0) +
coalesce(plen.sccomult,0) +
coalesce(plen.sccomant,0))
AS total_enviado,
(coalesce(plef.sccoapor,0) +
coalesce(plef.sccopram,0) +
coalesce(plef.sccoprin,0) +
coalesce(plef.sccocred,0) +
coalesce(plef.sccomocr,0) +
coalesce(plef.sccoprmo,0) +
coalesce(plef.sccofose,0) +
coalesce(plef.sccoacti,0) +
coalesce(plef.sccomult,0) +
coalesce(plef.sccomant,0))
AS total_efectuado
from scoplaen plen left outer join scoplani plef
on (plef.idccodso = plen.idccodso and
plef.sccdfech BETWEEN '01/01/2006' and '31/01/2006')
where plen.sccdfech BETWEEN '01/01/2006' and '31/01/2006';
o puedes hacer:
select plen.idccodso, (coalesce(plen.sccoapor,0) + coalesce(plen.sccopram,0) +
coalesce(plen.sccoprin,0) +
coalesce(plen.sccocred,0) +
coalesce(plen.sccomocr,0) +
coalesce(plen.sccoprmo,0) +
coalesce(plen.sccofose,0) +
coalesce(plen.sccoacti,0) +
coalesce(plen.sccomult,0) +
coalesce(plen.sccomant,0))
AS total_enviado,
(coalesce(plef.sccoapor,0) +
coalesce(plef.sccopram,0) +
coalesce(plef.sccoprin,0) +
coalesce(plef.sccocred,0) +
coalesce(plef.sccomocr,0) +
coalesce(plef.sccoprmo,0) +
coalesce(plef.sccofose,0) +
coalesce(plef.sccoacti,0) +
coalesce(plef.sccomult,0) +
coalesce(plef.sccomant,0))
AS total_efectuado
from scoplaen plen left outer join (select * from scoplani
where sccdfech
BETWEEN '01/01/2006' and '31/01/2006')
as plef using (idccodso)
where plen.sccdfech BETWEEN '01/01/2006' and '31/01/2006';
--
Atentamente,
Jaime Casanova
(DBA: DataBase Aniquilator ;)
From | Date | Subject | |
---|---|---|---|
Next Message | Jaime Casanova | 2006-02-08 04:45:26 | Re: varios inserts.. |
Previous Message | Javier Aquino H. | 2006-02-08 04:12:15 | Re: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] Fw:[pgsql-es-ayuda]Consulta sobre cómo armar estructura detablas |