Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/04/2016, 16:22
Avatar de kurt_fj
kurt_fj
 
Fecha de Ingreso: septiembre-2006
Mensajes: 10
Antigüedad: 17 años, 7 meses
Puntos: 0
Pregunta Sumar y agrupar por mes (Consulta)

Buenas a todos. Tengo la siguiente consulta

Código MySQL:
Ver original
  1.   `re`.`retencion` AS `name`,
  2.   CONCAT_WS(', ',
  3.     IF(MONTH(a.fecha) = 1, SUM(ahr.cantidad), 0),
  4.     IF(MONTH(a.fecha) = 2, SUM(ahr.cantidad), 0),
  5.     IF(MONTH(a.fecha) = 3, SUM(ahr.cantidad), 0),
  6.     IF(MONTH(a.fecha) = 4, SUM(ahr.cantidad), 0),
  7.     IF(MONTH(a.fecha) = 5, SUM(ahr.cantidad), 0),
  8.     IF(MONTH(a.fecha) = 6, SUM(ahr.cantidad), 0),
  9.     IF(MONTH(a.fecha) = 7, SUM(ahr.cantidad), 0),
  10.     IF(MONTH(a.fecha) = 8, SUM(ahr.cantidad), 0),
  11.     IF(MONTH(a.fecha) = 9, SUM(ahr.cantidad), 0),
  12.     IF(MONTH(a.fecha) = 10, SUM(ahr.cantidad), 0),
  13.     IF(MONTH(a.fecha) = 11, SUM(ahr.cantidad), 0),
  14.     IF(MONTH(a.fecha) = 12, SUM(ahr.cantidad), 0)
  15.   ) AS `data`
  16.   `actas` `a`
  17. INNER JOIN `actas_has_retenciones` `ahr` ON `fk_actas_id` = `acta_id`
  18. INNER JOIN `retenciones` `re` ON `retenciones_id` = `fk_retenciones_id`
  19. WHERE YEAR(`a`.`fecha`) = YEAR(now())
  20. GROUP BY `re`.`retencion`, MONTH(`a`.`fecha`)
  21. ORDER BY `name` ASC;
que me da como resultado:

Código MySQL:
Ver original
  1. +------------------+-------------------------------------+
  2. | name             | data                                |
  3. +------------------+-------------------------------------+
  4. | Arma de Fuego    | 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0  |
  5. | Arma de Fuego    | 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0  |
  6. | cerveza          | 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0 |
  7. | Equipos          | 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0 |
  8. | Moto             | 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0 |
  9. | Persona          | 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0  |
  10. | Productos Varios | 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0 |
  11. | Repuesto         | 0, 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0 |
  12. +------------------+-------------------------------------+
  13. 8 rows in set (0.00 sec)
Como se ve, "Arma de Fuego" se repite pues aparece en dos meses (Marzo y Abril).

Mi intención es obtener los resultados de esta forma:

Código MySQL:
Ver original
  1. +------------------+-------------------------------------+
  2. | name             | data                                |
  3. +------------------+-------------------------------------+
  4. | Arma de Fuego    | 0, 0, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0  |
  5. | cerveza          | 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0 |
  6. | Equipos          | 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0 |
  7. | Moto             | 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0 |
  8. | Persona          | 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0  |
  9. | Productos Varios | 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0 |
  10. | Repuesto         | 0, 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0 |
  11. +------------------+-------------------------------------+
  12. 7 rows in set (0.00 sec)
Ahora, "Arma de Fuego" no se repite y se ha colocado la suma de cada mes en su posición.

¿Cómo podría obtener los resultados de esta forma?

Gracias por la ayuda que me puedan prestar.