Ver Mensaje Individual
  #5 (permalink)  
Antiguo 22/06/2012, 09:16
leonardo_josue
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 10 meses
Puntos: 447
Respuesta: agrupar suma de cantidades de acuerdo a un precio

Hola galarraga:

La idea que tenías no estaba del todo errada, sin embargo desde mi punto de vista tienes que hacer dos agrupaciones... en tu tabla tienes dos registros para el item 0001 y el precio 8.00

Código MySQL:
Ver original
  1. +------+------+--------+----------+
  2. | id   | item | precio | cantidad |
  3. +------+------+--------+----------+
  4. |    3 | 0001 |   8.00 |        2 |
  5. |    5 | 0001 |   8.00 |        4 |
  6. +------+------+--------+----------+

Por lo tanto, tendrías que sumar primero las cantidades... La consulta que requieres quedaría entonces más o menos así:

Código MySQL:
Ver original
  1. mysql> select * from tabla;
  2. +------+------+--------+----------+
  3. | id   | item | precio | cantidad |
  4. +------+------+--------+----------+
  5. |    1 | 0001 |   5.00 |        3 |
  6. |    2 | 0002 |   2.00 |        2 |
  7. |    3 | 0001 |   8.00 |        2 |
  8. |    4 | 0003 |   5.00 |        7 |
  9. |    5 | 0001 |   8.00 |        4 |
  10. |    6 | 0003 |   5.00 |        3 |
  11. |    7 | 0002 |   4.00 |        3 |
  12. +------+------+--------+----------+
  13. 7 rows in set (0.01 sec)
  14.  
  15. mysql> select
  16.     ->    T.item,
  17.     ->    group_concat(concat(T.cantidad, "x", T.precio) separator "-") historico
  18.     -> from
  19.     ->   (select item, precio, sum(cantidad) cantidad
  20.     ->    from tabla
  21.     ->    group by item, precio) T
  22.     -> group by item;
  23. +------+---------------+
  24. | item | historico     |
  25. +------+---------------+
  26. | 0001 | 3x5.00-6x8.00 |
  27. | 0002 | 2x2.00-3x4.00 |
  28. | 0003 | 10x5.00       |
  29. +------+---------------+
  30. 3 rows in set (0.00 sec)

Observa que la subconsulta marcada como T es en realidad la consulta que te había proporcionado quimfv, el resto sólo fue cuestión de volver a agrupar y darle el formato deseado.

Saludos
Leo.