Obtener el máximo

09/03/2008 - 20:19 por Andresj | Informe spam
Hola,

Teniendo una tabla con los campos:

ID (int, autonumerico)
IDPersonal (int)
FechaRevision (smallDateTime)

y teniendo en cuenta que IDPersonal puede estar repetido (un trabajador
puede haber pasado varias revisiones), como puedo obtener la última fecha
para cada trabajador, además del campo ID?

Con SELECT MAX(FechaRevision) FROM TABLE GROUP BY IDPersonal, obtengo la
última fecha. Pero quisiera además obtener el campo ID. Se puede hacer en
una sola conulta?

Grácias.
 

Leer las respuestas

#1 Juan Diego Bueno
09/03/2008 - 20:52 | Informe spam
Hola Andrés:

Se puede hacer de otras formas, pero creo que la más legible sería esta:


WITH PERSONAL(IDPERSONAL, ULTFECHA)
AS
(
SELECT IDPERSONAL, MAX(FechaRevision) FROM TABLE GROUP BY IDPersonal
)
SELECT T.ID, T.IDPERSONAL, P.ULTFECHA FROM TUTABLA
INNER JOIN PERSONAL P ON T.IDPERSONAL=P.IDPERSONAL

Saludos

Juan Diego Bueno www.moondance.es

"Andresj" escribió en el mensaje
news:
Hola,

Teniendo una tabla con los campos:

ID (int, autonumerico)
IDPersonal (int)
FechaRevision (smallDateTime)

y teniendo en cuenta que IDPersonal puede estar repetido (un trabajador
puede haber pasado varias revisiones), como puedo obtener la última fecha
para cada trabajador, además del campo ID?

Con SELECT MAX(FechaRevision) FROM TABLE GROUP BY IDPersonal, obtengo la
última fecha. Pero quisiera además obtener el campo ID. Se puede hacer en
una sola conulta?

Grácias.

Preguntas similares