Ver Mensaje Individual
  #4 (permalink)  
Antiguo 03/08/2011, 14:22
leonardo_josue
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: Obtener varios registros con la fecha mas reciente

Hola Daviel:

Este tipo de consultas se ha tratado muchas veces en el foro, es conveniente que antes de agregar un nuevo tema utilices la herramienta de búsqueda que tienes disponible para tratar de no repetir temas.

Tengo algunas observaciones con respecto a los códigos que proporcionan Libras y Vrenzo. En primer lugar no es recomendable utilizar sentencias IN en las consultas, ya que este operador puede afectar enormemente el performance del servidor, en su defecto hay que tratar de hacer JOIN'S o utilizar EXISTS. Igual y la consulta funciona, pero repito que no tiene el mejor desempeño.

En cuanto a la consulta del Vrenzo, creo que lo único que agrega es el TOP 3, lo que indicaría simplemente que te mostrara los tres primeros registros, no resuelve el problema de fonro

En cuanto a tu consulta no estás tan errado, pero al agrupar por todos los campos afectas el resultado final. Sólo debes obtener la máxima fecha POR MES, y en tu caso estarías trayendo las tres máximas fechas de toda la tabla.

Puedes intentar hacer algo como esto:

Código:
select T1.* from TuTabla T1 INNER JOIN 
(select Mes, MAX(Fecha) Max_Fecha from TuTabla T group by mes) T2
on T1.Mes = T2.Mes and T1.fecha = T2.Max_Fecha
Aquí hay un detalle y sería que existieran dos registros con la misma fecha máxima, ya que la consulta mostraría todos los registros que cumplan con la condición. Dale un vistazo para ver si es lo que necesitas.

Y como última recomendación... si tienes instalado SQL Server 2005 utilízalo en lugar de ACCESS, ya que este no se puede considerar como un verdadero administrador de BD...

Saludos
Leo