Hola elwolos:
A ver si te entiendo. Tu deseas como resultado los códigos con estado 3, pero que nunca les han sido asignados otros estados, tan solo el estado 3?, y de ella sacar el codigo con fecha más reciente?.
Esta consulta lo hace, lo he probado con los datos que me diste, estas seguro que eso no deseas?.
Cita: SELECT codigo, estado, fecha
from recorrido r1
where r1.estado = '3' AND
fecha=(select max(fecha) from recorrido
where estado=r1.estado and codigo=r1.codigo) and
(select count(*) from recorrido r2
where r2.codigo=r1.codigo and r2.estado!=r1.estado)=0
order by codigo;
Le estoy agregando la condición que tome en cuenta solo los códigos que no tengan estados diferentes a '3', salvo que entendi mal
.
Si gustas puedes mandarme un M.P. o escribir a mi correo (mauro_alberto(arroba)hotmail.com).
Saludos