Hola, El día 18 de septiembre de 2012 20:48, oscar arocha <[email protected]> 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: [email protected] ICQ: 97148268 Usuario GNU/Linux #84879 - https://linuxcounter.net/user/84879.html - Enviado a la lista de correo pgsql-es-ayuda ([email protected]) Para cambiar tu suscripción: http://www.postgresql.org/mailpref/pgsql-es-ayuda
