Ver Mensaje Individual
  #1 (permalink)  
Antiguo 19/09/2011, 04:07
JCorfer
 
Fecha de Ingreso: julio-2010
Mensajes: 23
Antigüedad: 13 años, 9 meses
Puntos: 0
.:Consulta por Agrupación:.

Hola a tod@s,

Estoy teniendo problemas para agrupar y sumar los resultados de una consulta. La consulta es la siguiente:

SELECT top2.products_quantity
FROM toc_orders_products top2, toc_orders_status_history tosh2
WHERE 20 = top2.products_id
AND top2.orders_id = tosh2.orders_id
AND (tosh2.orders_status_id = 4 OR tosh2.orders_status_id = 5 OR tosh2.orders_status_id = 6 OR tosh2.orders_status_id = 7)
GROUP BY tosh2.orders_id


Hasta aquí todo bien, obtengo, del libro con ID = 20, dos registros (ya que sólo hay dos órdenes de pedidos) con la cantidad de libros comprados por cada registros (en un mismo pedido pueden repetirse los libros), que son 4 y 1 respectivamente.

Ahora lo que quiero es agrupar por libro, para que me sume la cantidad de libros comprados de todas las ordenes, que el código quedaría

SELECT SUM(top2.products_quantity)
FROM toc_orders_products top2, toc_orders_status_history tosh2
WHERE 20 = top2.products_id
AND top2.orders_id = tosh2.orders_id
AND (tosh2.orders_status_id = 4 OR tosh2.orders_status_id = 5 OR tosh2.orders_status_id = 6 OR tosh2.orders_status_id = 7)
GROUP BY top2.products_id,tosh2.orders_id


Ahora me aparece un sólo registro, el cuál contiene 14 . Creo que se debe a que, en la tabla toc_orders_status_history, un mismo orden aparece varias veces, ya que este pasa por varios estados (detalle que tengo en cuenta en la consulta). Entonces, tengo que agrupar por orders_id, o sea, por orden. Pero parece que ahí es donde creo está el problema, creo que no me está agrupando por orders_id.

Si alguien da con la solución, le estaría enormemente agradecido.

Gracias y saludos!