| From: | MIGUEL CANCHAS <mcanchas(at)tsr(dot)com(dot)pe> | 
|---|---|
| To: | 'Rodriguez Fernando' <rodriguez(at)ort(dot)edu(dot)uy>, MIGUEL CANCHAS <mcanchas(at)tsr(dot)com(dot)pe> | 
| Cc: | pgsql-es-ayuda(at)postgresql(dot)org | 
| Subject: | RE: ALGO MUY RARO !!!!!!!!!!!! | 
| Date: | 2008-04-28 14:09:15 | 
| Message-ID: | 410117BB01F4D611B73A00010331DD2403B58CEA@tsnt.tsr.com.pe | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-es-ayuda | 
-----Mensaje original-----
De: Rodriguez Fernando [mailto:rodriguez(at)ort(dot)edu(dot)uy]
Enviado el: Lunes, 28 de Abril de 2008 06:51 a.m.
Para: MIGUEL CANCHAS
CC: pgsql-es-ayuda(at)postgresql(dot)org
Asunto: Re: [pgsql-es-ayuda] ALGO MUY RARO !!!!!!!!!!!!
MIGUEL CANCHAS wrote:
> tengo este select :
>
> SELECT 
>   public.hrt1.idpartida,
>   public.hrt1.anio_partida,
>   public.hrt1.idbarca,
>   public.hrt1.idcliente,
>   sum(public.hrt2.kgs_programa) as prog,
>   sum(public.hrt3.kg_armado) AS armado
> FROM
>   public.hrt1
>   LEFT OUTER JOIN public.hrt2 ON (public.hrt1.idpartida =
> public.hrt2.idpartida)
>   AND (public.hrt1.anio_partida = public.hrt2.anio_partida)
>   LEFT OUTER JOIN public.hrt3 ON (public.hrt2.idpartida =
> public.hrt3.idpartida)
>   AND (public.hrt2.anio_partida = public.hrt3.anio_partida)
> WHERE
>   (public.hrt1.idpartida = '10') AND 
>   (public.hrt1.anio_partida = '2008')
> GROUP BY
>   public.hrt1.idpartida,
>   public.hrt1.anio_partida,
>   public.hrt1.idbarca,
>   public.hrt1.idcliente
>
> En donde deberia arrojarme esto :
>
> idpartida	anio_partida	idbarca	idcliente	prog
> armado
> 10		2008			1		D001		438
> 403.2
>
> Pero lo mas extraño es que arroja esto
>
> idpartida	anio_partida	idbarca	idcliente	prog	armado
> 10		2008			1		D001		7446
> 403.2
>
> el prog me da 7446 y en hrt2 solo hay un item con esa cantidad de 438 
> ¿a que se debe? ¿o estoy haciendo mal mi SQL?
>
> Gracias
>
> Miguel
> --
> TIP 4: No hagas 'kill -9' a postmaster
>   
Hola :
No deberia tener nada que ver, pero espresa el join de esta manera.
FROM
  public.hrt1
  LEFT OUTER JOIN public.hrt2 ON (public.hrt1.idpartida
=public.hrt2.idpartida
                    AND public.hrt1.anio_partida = public.hrt2.anio_partida)
  LEFT OUTER JOIN public.hrt3 ON (public.hrt2.idpartida =
public.hrt3.idpartida 
            AND public.hrt2.anio_partida = public.hrt3.anio_partida)
Saludos Fernando
********************
LO Resolvi con esto :
SELECT 
  hrt1.idpartida,
  hrt1.idbarca,
  hrt1.idcliente,
  public.mclientes.nomcliente,
  hrt1.idcolor,
  public.mcolores.nomcolor,
  hrt1.fecha_partida,
  (SELECT SUM(kgs_programa) AS "FIELD_1" FROM hrt2 WHERE (hrt2.idpartida =
hrt1.idpartida) AND (hrt2.anio_partida = hrt1.anio_partida)) AS programado,
  (SELECT SUM(kg_armado) AS "FIELD_1" FROM hrt3 WHERE (hrt3.idpartida =
hrt1.idpartida) AND (hrt3.anio_partida = hrt1.anio_partida)) AS armado
FROM
  hrt1
  LEFT OUTER JOIN public.mclientes ON (hrt1.idcliente =
public.mclientes.idcliente)
  LEFT OUTER JOIN public.mcolores ON (hrt1.idcolor =
public.mcolores.idcolor)
Gracias
Miguel
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Luis D. García | 2008-04-28 14:34:46 | Fallo en pruebas con Slony | 
| Previous Message | dennys lara | 2008-04-28 13:55:56 | download |