Ver Mensaje Individual
  #2 (permalink)  
Antiguo 19/09/2011, 06:13
quimfv
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: .:Consulta por Agrupación:.

Código MySQL:
Ver original
  1. SELECT top2.products_id,tosh2.orders_id,SUM(top2.products_quantity)
  2. FROM toc_orders_products top2 LEFT JOIN toc_orders_status_history tosh2
  3. ON top2.orders_id = tosh2.orders_id
  4. WHERE top2.products_id=20
  5. AND (tosh2.orders_status_id = 4
  6.               OR tosh2.orders_status_id = 5
  7.                       OR tosh2.orders_status_id = 6
  8.                               OR tosh2.orders_status_id = 7)
  9. GROUP BY top2.products_id,tosh2.orders_id

Mira si así ves mas claro lo que te esta haciendo

SELECT top2.products_id,tosh2.orders_id,SUM(top2.products _quantity)
....
GROUP BY top2.products_id,tosh2.orders_id

Esto suma products_quantity para cada combinacion de products_id,orders_id en tu caso como limitas por top2.products_id=20 te dará la suma para cada orders_id distintos relacionados con top2.products_id=20.... si solo sale un numero serà que products_id=20 solo tinen un orders_id donde ademas orders_status_id es 4,5,6 o 7.

AND (tosh2.orders_status_id = 4
OR tosh2.orders_status_id = 5
OR tosh2.orders_status_id = 6
OR tosh2.orders_status_id = 7)

es igal a AND tosh2.orders_status IN (4,5,6,7) mas comodo no?
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 19/09/2011 a las 06:18