Re: Ayuda sobre left outer join

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 ;)

In response to

Responses

Browse pgsql-es-ayuda by date

  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