Los datos expuestos en este blog, son solo de índole informativo. Por favor realiza siempre una copia de seguridad antes de realizar cualquier cambio en tu proyecto.
MS Access 2003: consulta para recuperar el último registro de la tabla
Este tutorial de MSAccess muestra cómo crear una consulta para recuperar los últimos registros de una tabla en Access 2003 (con capturas de pantalla e instrucciones paso a paso).
P: Tengo una base de datos de Access 2003/XP/2000/97 que contiene registros de contactos y su historial asociado. Estoy tratando de ejecutar una consulta SQL para recuperar solo los últimos registros de cada contacto (ignorando todos los registros antiguos). El problema es que la consulta sigue devolviendo todo el historial, no solo el más reciente.
Intenté la siguiente instrucción SQL pero parece que no funciona:
SELECT (select max(History.HistoryID) from History where History.RefID = Contacts.ID), Contacts.ID, Contacts.FirstName, Contacts.MiddleName, Contacts.LastName, Contacts.Company, Contacts.Email, History.Method, History.ContactedBy, History.Comments, History.RefID, History.LastContact, History.NextContact FROM History LEFT OUTER JOIN Contacts ON History.RefID = Contacts.ID WHERE LastContact <= 8/28/2003 ORDER BY LastContact;
Respuesta: Dado que está tratando de encontrar el registro más reciente para cada contacto en la tabla de historial, debe crear dos consultas en Access. (No se puede hacer en una sola consulta, porque también está intentando recuperar otros campos de información en el conjunto de resultados).
La primera consulta determinará los registros más recientes, mientras que la segunda consulta devuelve todos los campos que desea ver en el conjunto de resultados.
Creamos una base de datos de Access que puede descargar para ver estas consultas.
Descargar versión en Access 2000
Echemos un vistazo más de cerca a nuestro ejemplo.
Nuestra primera consulta se llama “Paso 1: encuentre el registro más reciente para cada contacto”. Esta consulta encuentra la última fecha de LastContact para cada contacto cuyo LastContact es menor o igual al 28 de agosto de 2003.
La segunda consulta se llama “paso 2: devolver el resultado final”. Esta consulta une las tablas de contactos e historial con los resultados de la primera consulta. Esto nos permite recuperar los campos necesarios del conjunto de resultados.