Agrupar registros, buscar la fecha mayor de cada grupo y devolver toda la fila MySQL

De MySQL, tengo un problema que no puedo resolver por más vueltas que le doy, quiero administrar los cambios de área del personal de una empresa, para eso hice una tabla en MySQL con los campos numempleado, areanueva, fechacambio, el objetivo es hacer una sola consulta y obtener todos los empleados con su cambio más reciente, para ello basándose en la columna fechacambio.

Hay alguna forma de crear una lista de todos los números de empleado, ¿y qué cada empleado tenga su ultima área y su ultima fecha cambio?

Lo intenté con la función máx y group, pero lo que hace es agrupar los números de empleados y ponerme enfrente de cada numero la fecha máxima, pero no sé como hacer que también obtenga el área correspondiente a la ultima fecha.

3

3 Respuestas

17.575 pts.

select * from tabla t1

where ultima_fecha=(select max(ultima_fecha) from tabla t2 where t1.num_emp=t2.num_emp);

1.350 pts.

select num_empe, Ultima_Fecha, Ultima_Area from nombredelatabla order by Ultima_Fecha limit 1

Perdón amigo no había leído bien

select num_empe, Ultima_Fecha, Ultima_Area from nombredelatabla group by num_empe order by Ultima_Fecha desc

275 pts.

SELECT num_emp, max(fecha_cambio) AS 'Fecha_Cambio', area_cambio AS 'Ultimo_Cambio' from TABLA GROUP BY num_emp ORDER BY fecha_cambio DESC;

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas