Ver Mensaje Individual
  #3 (permalink)  
Antiguo 19/12/2011, 04:08
wilsailor
 
Fecha de Ingreso: octubre-2010
Mensajes: 10
Antigüedad: 13 años, 6 meses
Puntos: 1
Respuesta: Problema con subconsulta aparentemente sencilla

Ante todo muchas gracias por tu respuesta...

La consulta es la siguiente:

SELECT *, TO_DAYS(curdate())-TO_DAYS(status2.fechahora) AS dif, TO_DAYS(curdate())-TO_DAYS(expedients.datarecepcio) AS dif2
FROM expedients INNER JOIN (SELECT * FROM status
WHERE status = 'parametro' ORDER BY fechahora DESC) AS status2
ON expedients.codexpedient = status2.codexpedient GROUP BY expedients.codexpedient

Te cuento con mas detalle...
Como puedes ver tengo unas funciones para saber los días que han transcurrido entre algunas fechas de la consulta y la fecha actual, y hasta aquí todo bien, lo que pasa es que me muestra todos los registros de expedientes, y lo que no consigo es que solo muestre los expedientes cuyo ultimo registro en status sea el parametro de la clausula Where

La estructura basica (tiene muchos campos) de las tablas son las siguientes:

EXPEDIENTS
codexpedient int(11) NOT NULL auto_increment,
datarecepcio date NOT NULL,
cognom1tit varchar(100) NOT NULL,
cognom2tit varchar(100) NOT NULL,
nomtit varchar(100) NOT NULL,
CIPtit varchar(30) NOT NULL,
DNItit varchar(20) NOT NULL,
datanaixementtit date NOT NULL,
tiene muchos mas campos...

STATUS
codstatus int(11) NOT NULL auto_increment,
codexpedient varchar(100) NOT NULL,
status varchar(150) NOT NULL,
titoltextepredefinit text,
fechahora timestamp NOT NULL,

Tengo la sensación que se me escapa algo y que tiene que ser sencillo, pero llevo demasiado tiempo dandole vueltas y necesito otros puntos de vista...
Muchisimas gracias por adelantado