Ver Mensaje Individual
  #11 (permalink)  
Antiguo 07/06/2006, 11:16
Avatar de PequeñoMauro
PequeñoMauro
 
Fecha de Ingreso: abril-2006
Ubicación: Lima - Perú
Mensajes: 600
Antigüedad: 18 años, 1 mes
Puntos: 3
Que tal elwolos, entendi
Veamos si cualquiera de estas dos consultas te ayuda:

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;
o esta
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 not exists
(select * from recorrido r2
where r2.codigo=r1.codigo and r2.estado!=r1.estado)
order by codigo;
Cualquiera de las dos te da el mismo resultado. Solo que estoy haciendo la consulta si es que el codigo tambien ha tenido otro estado (asi sea 5 o no).
Si quieres que solo sea 5, cambiale el where en la segunda sub-consulta

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='5')=0
order by codigo;
Igual en el segundo select.
Espero que sea lo que deseas, saludos
__________________
"Nada en mis manos traigo tan solo a tu cruz me aferro....."