Ver Mensaje Individual
  #2 (permalink)  
Antiguo 06/05/2009, 18:15
jurena
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: Union que NO toma valor maximo

Para controlar las posibles coincidencias, es decir, que dos paquete_id distintos tengan el mismo status y fecha máximos, te aconsejo una sintaxis como esta (he pensado que hay un campo paquete en la tabla paquetes):
Código sql:
Ver original
  1. SELECT paquetes.paquete, t2.paqu, t2.statu, t2.fech FROM paquetes INNER JOIN
  2.   (SELECT t1.paq paqu, t1.stat statu, MAX(fecha) fech FROM tracking
  3.     INNER JOIN (SELECT paquete_id paq, MAX(STATUS) stat FROM `tracking` GROUP BY paquete_id)t1
  4.      ON T1.paq=tracking.paquete_id AND t1.stat = tracking.STATUS GROUP BY paquete_id)t2
  5.      ON T2.paqu=paquetes.paquete_id ORDER BY paquetes.paquete_id

Si no hiciera falta traerse datos de la tabla paquetes, podríamos quitar una "capa a la cebolla" de esta consulta.