From: | "Eduardo Arenas C(dot)" <edomax(at)gmail(dot)com> |
---|---|
To: | arocha(dot)oscar(at)gmail(dot)com |
Cc: | pgsql-es-ayuda <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: Consulta con JOINs |
Date: | 2012-09-22 01:02:29 |
Message-ID: | CAEe4h9rAViFo7tcU+6a7o6Osj9+KschjQNLgjn2_6V6sFsqZfA@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Oscar,
Creo que Guillermo tiene razón... no tiene sentido lo que quieres
hacer!
Pero no importa, suponiendo que el ejemplo que diste es consistente,
asumiendo relaciones entre tablas según los nombres de los atributos, creo
que no es necesario hacer joins para resolver tu consulta. Mira lo
siguiente y ve si te sirve:
select tipo_prod.tipo,sum(prod_sol.cantidad)
from prod_sol
,solicitudes
,producto
,tipo_prod
where prod_sol.id_sol = solicitudes.idsol
and prod_sol.id_prod = producto.id_prod
and producto.id_tipo = tipo_prod.id_tipo
and solicitudes.fecha between '2012-01-01' and '2012-01-31'
group by tipo_prod.tipo;
Saludos
Eduardo Arenas C.
El 18 de septiembre de 2012 22:33, Guillermo O. Burastero <
linux(dot)gb(at)gmail(dot)com> escribió:
> Hola,
>
> El día 18 de septiembre de 2012 20:48, oscar arocha
> <arocha(dot)oscar(at)gmail(dot)com> escribió:
> > Saludos lista, nuevamente por aquí solicitando su colaboración, esta vez
> > tengo un inconveniente al momento de realizar una consulta que me permita
> > saber el total de productos solicitados, la estructura de tablas es algo
> > similar a esto
> >
> > tipo_prod{
> >
> > id_tipo int,
> > tipo varchar
> >
> > }
> >
> > producto{
> >
> > id_prod int,
> > id_tipo int,
> > producto
> >
> > }
> >
> > solicitud {
> >
> > id_sol int,
> > fecha date
> >
> > }
> >
> > prod_sol{
> >
> > id_prod int,
> > id_sol int,
> > cantidad int
> >
> > }
> >
> > el query que ejecuto es:
> >
> > SELECT A.tipo_prod, SUM(C.cantidad)
> > FROM tipo_prod A
> > LEFT OUTER producto B ON (A.id_tipo = B.id_tipo)
> > LEFT OUTER prod_sol C ON (B.id_prod = C.id_prod)
> > LEFT OUTER solicitud D ON (C.id_sol = D.id_sol AND D.fecha BETWEEN
> > '2012-01-01' AND '2012-01-31')
> >
> > El inconveniente es que no logro dar con la combinación de JOINs para
> que
> > me pueda generar la lista de tipo_prod completa, con las cantidades
> > correspondientes a ese rango de fecha. ya que el resultado que me arroja
> es
> > la suma de todas las solicitudes sin tomar en cuenta el rango de fecha.
> >
> > Si pueden ayudarme con la consulta se los agradezco.
> >
> > --
> > Ing. Oscar Arocha
> > CIV 208.476
> > 0416-4257379
> > twitter: @ArochaOscar
> >
>
> Primero no tiene sentido sumar cantidades de solicitudes de productos
> distintos (aunque pertenezcan al mismo grupo) pues representan
> distintas cosas (1). Segundo, las funciones de agregación como sum(*)
> requieren una cláusula de agrupamiento GROUP BY.
>
> Es como si en el grupo "Lácteos" sumás envases de yogur, con litros de
> leche, con hormas o kg. de quesos. Las sumas de magnitudes
> heterogéneas no tiene sentido.
>
> Poné un ejemplo sensato del tipo de tabla resultado que pretendés, a
> ver si te podemos ayudar.
>
> Saludos cordiales.
>
> --
> Guillermo O. Burastero
>
> Bahía Blanca, Buenos Aires, Argentina
> Tel. +54 (291) 454-6132 - Móvil [15] 574-3173
>
> MSN: guillermo(dot)burastero(at)gmail(dot)com
> ICQ: 97148268
> Usuario GNU/Linux #84879 - https://linuxcounter.net/user/84879.html
>
> -
> Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda(at)postgresql(dot)org
> )
> Para cambiar tu suscripción:
> http://www.postgresql.org/mailpref/pgsql-es-ayuda
>
From | Date | Subject | |
---|---|---|---|
Next Message | Anthony | 2012-09-22 01:35:28 | Re: INsert con select condicionado |
Previous Message | Milton Labanda | 2012-09-21 22:34:20 | Re: [ecpug] PLV8JS (Javascript en Postgres) |