No repetir registros en consulta por fecha máxima

Todos/as
Tenga una bbdd de personal para controlar una remuneración mensual.
Necesito que en una consulta me salga la ultima modificación de este complemento.
Realiza la consulta por fecha máx pero en el momento que añado más campos me salen varios registros de una misma persona.
La consulta se basa en dos tablas una de datos personales y otra de las modificaciones, relacionados en base al DNI.
La consulta en SQL es esta
select distinct cde.dni, [apellido 1] & " " & [apellido 2] & ", " & [nombre] as [apellidos y nombre], max(cde.fecha) as máxdefecha, cde.modulo, cde.motivo, cde.observaciones
from [nombre+dni] inner join cde on [nombre+dni].dni = cde.dni
group by cde.dni, [apellido 1] & " " & [apellido 2] & ", " & [nombre], cde.modulo, cde.motivo, cde.observaciones, [nombre+dni].[apellido 1], [nombre+dni].[apellido 2], [nombre+dni].nombre;
Así no me discrimina el ultimo valor de fecha, pero si elimino los campos de MODULO, OBSERVACIONES Y MOTIVO si que me aparece tan solo el ultimo registro de cada DNI.
select distinct cde.dni, [apellido 1] & " " & [apellido 2] & ", " & [nombre] as [apellidos y nombre], max(cde.fecha) as máxdefecha
from [nombre+dni] inner join cde on [nombre+dni].dni = cde.dni
group by cde.dni, [apellido 1] & " " & [apellido 2] & ", " & [nombre], [nombre+dni].[apellido 1], [nombre+dni].[apellido 2], [nombre+dni].nombre;
Ando un poco perdido, así que agradecería cualquier ayuda.
He tenido que cambiar las mayúsculas a minúsculas de la consulta SQL, porque si no no me dejaba publicar la pregunta ;).

1 respuesta

Respuesta
1
Como para una misma persona tendrás varios modulo, observaciones o motivo, al agrupar por estos campos te salen más registros.
Lo que puedes hacer es guardar la consulta (por ej. Consulta1) en la que no están estos campos y crearte otra consulta basada en Consulta1 y cde. Vinculas estas 2 tablas (ten en cuenta que las consultas de selección actúan exactamente igual que las tablas) por los campos [apellido y nombre] y [máxdefecha], bajas los campos modulo, observaciones y motivo y obtendrás los registros de estos campos para el nombre y fecha idicados en Consulta1.
Me cuentas, saludos Angeles
Página supuestos y soluciones en access: http://angelessebas.es/
Gracias por responder.
Al final lo resolví de la manera más tonta ;) Desde el mismo panel de diseño de la consulta, en cada uno de los nuevos atributos que iba añadiendo marcaba en el agrupar por, la opción de "Último" con lo que me mantenía el criterio de la fecha.
Es un poco de albañilería del access pero funciona, me vino la luz después de poner la pregunta.
Gracias por el esfuerzo, ese planteamiento lo había tenido pero no me cuadraba el tener que generar una segunda consulta y suponía que debería haber una solución más fácil.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas