SQL - URGENTE:CONSULTA FACILITA

 
Vista:

URGENTE:CONSULTA FACILITA

Publicado por montse (8 intervenciones) el 21/05/2003 19:17:12
Hola a todos,

creo q no es una consulta dificil pero no consigo sacarla.

tengo una tabla con los siguientes datos, id,fecha,estado.
para cada id tengo distintos registros con distintas fechas y estados, y quiero sacar como resultado cada id con su fecha y estado ultimo,

ejemplo:
id fecha estado
1 1/1/2001 a
2 1/1/2001 a
2 1/1/2003 b
2 1/1/2004 c
1 1/1/2002 b

resultado seria

1 1/1/2002 b
2 1/1/2004 c

La consulta que tengo es la siguiente

SELECT A.id, Max(A.fecha),estado
FROM tabla AS A
GROUP BY A.id, estado

y no me funciona, si le quito el estado si funciona pero necesito tb sacar esa informacion

que hago mal? como se hace?

estaria muy agradecida si alguien me pudiera ayudar
me urge

Gracias de antemano.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:URGENTE:CONSULTA FACILITA

Publicado por Jerry (15 intervenciones) el 21/05/2003 22:52:30
Hola Montse...

La solución creo que podria ser la siguiente, de acuerdo al ejemplo que proporcionas:

SELECT A.Id, A.Fecha, MAX(B.Estado)
FROM
(SELECT Id, MAX(Fecha) as Fecha FROM ##PRUEBAX GROUP BY Id) AS A INNER JOIN ##PRUEBAX AS B ON (B.Id = A.Id AND B.Fecha = A.Fecha)
GROUP BY A.Id, A.Fecha

Es obvio que tienes que extraer la máxima fecha por Id, como tu lo habias mencionado. solo falta que definieras el criterio de extracción del estado (máximo o mínimo), ya que podemos dar por hecho que puede haber dos registros con mismo Id y con misma fecha, pero con diferente estado. Luego entonces, una vez que hemos determinado la máxima fecha para cada uno de los Id's, deberemos obtener el máximo o mínimo estado (según lo requieras), para cada par id-fecha encontrado.

Espero que sea de utilidad.

Cuidate mucho.
Saludos.

-Jerry--
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar