Ver Mensaje Individual
  #1 (permalink)  
Antiguo 21/08/2012, 17:00
tokkaido
 
Fecha de Ingreso: julio-2009
Mensajes: 90
Antigüedad: 15 años, 3 meses
Puntos: 4
fusionar filas pro fecha

Buenas tardes, puede alguien ayudarme con la siguiente consulta?

necesito que el resultado de una consulta de cambios y rellenos de aceite me muestre en una sola fila por fecha los litros de relleno y los litros de cambio si es que hubo tales en la misma fecha. para mas claridad les adjunto un ejemplo:

Código MySQL:
Ver original
  1. CREATE TABLE `aceites` (
  2.   `fecha` date NOT NULL,
  3.   `tipo` varchar(10) COLLATE utf8_spanish_ci NOT NULL,
  4.   `litros` int(11) NOT NULL,
  5.   PRIMARY KEY (`id`)
  6. ) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8 COLLATE=utf8_spanish_ci;
  7.  
  8. -- ----------------------------
  9. -- Records of aceites
  10. -- ----------------------------
  11. INSERT INTO `aceites` VALUES ('1', '2012-02-09', 'RELLENO', '2');
  12. INSERT INTO `aceites` VALUES ('2', '2012-03-05', 'RELLENO', '2');
  13. INSERT INTO `aceites` VALUES ('3', '2012-03-26', 'RELLENO', '4');
  14. INSERT INTO `aceites` VALUES ('4', '2012-03-31', 'CAMBIO', '20');
  15. INSERT INTO `aceites` VALUES ('5', '2012-04-14', 'RELLENO', '2');
  16. INSERT INTO `aceites` VALUES ('6', '2012-07-31', 'CAMBIO', '20');
  17. INSERT INTO `aceites` VALUES ('7', '2012-08-13', 'RELLENO', '1');
  18. INSERT INTO `aceites` VALUES ('8', '2012-08-13', 'CAMBIO', '20');
  19. INSERT INTO `aceites` VALUES ('9', '2012-08-14', 'RELLENO', '2');
  20. INSERT INTO `aceites` VALUES ('10', '2012-03-05', 'CAMBIO', '10');

como pueden ver en los datos, el día 05 de marzo y el día 13 de agosto se produjo un relleno y un cambio en el mismo día, en el resto de los días no.

si realizo la siguiente consulta:

Código MySQL:
Ver original
  1. r.fecha,
  2. IF(r.tipo='RELLENO',r.litros,NULL) AS LTS_RELLENO,
  3. IF(c.tipo='CAMBIO',c.litros,NULL) AS LTS_CAMBIO
  4. FROM aceites AS c
  5. INNER JOIN aceites AS r ON r.fecha = c.fecha

el resultado es "casi" como quiero, es decir en una misma fila el valor del relleno y del cambio para un mismo dia, pero me repite una fila



lo ideal seria que el resultado fuera:



he probado con el GROUP BY fecha pero no me resulta, me omite las filas que son correctas

cualquier ayuda sera bienvenida, gracias!
__________________
C[^L*]D
[email protected]
tokkaido.blogspot.com
No hay mejor forma de aprender que enseñar