Ultimo registro con todos sus campos

Tengo una tabla que se llama salida y que contiene los siguientes campos: id(autonumérico), fechasalida, idmaterial, iddistribuidor, status. Esta tabla tiene registros duplicados debido al idmaterial, así que me guio por la fecha para conseguir el ultimo registro de cada material.
Lo que quiero hacer es una consulta que me traiga el ultimo registro de cada material es decir que si tengo la siguiente información:
Id fechasalida idmaterial iddistribuidor status
1       20/01/2010    a100       57001           fuera
2       21/02/2010    a100        58001          devuelto
Esa contulta me traiga el ultimo registro de el material a100.
Respuesta
1
Has de tener dos consultas, una para buscar el ultimo registro en función de la fecha:
Consulta1:
SELECT Max(salida.fechasalida) AS MáxDefechasalida, salida.idmaterial
FROM salida
GROUP BY salida.idmaterial
HAVING (((salida.idmaterial)="a100"));
Y otra para ver el id de ese registro.
Consulta2:
SELECT Consulta1.MáxDefechasalida, Consulta1.idmaterial, salida.id
FROM Consulta1 LEFT JOIN salida ON (Consulta1.MáxDefechasalida = salida.fechasalida) AND (Consulta1.idmaterial = salida.idmaterial);
Esta ultima consulta nos da el ID de la tabla.
Pero si tengo unos 500 registros, solo me trae el valor de para "a100", lo que necesito es que la consulta me traiga los últimos registros de todos los materiales junto con todos sus campos.
Deja la consulta1 así y listo:
SELECT Max(salida.fechasalida) AS MáxDefechasalida, salida.idmaterial
FROM salida
GROUP BY salida.idmaterial;
Ya lo hice de esa forma, y me arroja el resultado correcto, pero como le hago para que me aparezcan todos los campos de ese registro, porque al momento de agregar los campos de iddistribuidor y status me agrega todos los registros y ya no me limita la búsqueda, así que el problema con el que me encuentro es básicamente que cuando me de el ultimo registro de el material, me ponga todos los campos.
Saludos y grx por el tiempo dedicado
Ahora no se si te he entendido bien.
Quieres que aparezcan todos los campos, pues solo tienes que agregarlos a la consulta 2
SELECT Consulta1.MáxDefechasalida, Consulta1.idmaterial, salida.id, salida.CAMPO...
FROM Consulta1 LEFT JOIN salida ON (Consulta1.MáxDefechasalida = salida.fechasalida) AND (Consulta1.idmaterial = salida.idmaterial);

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas