Mysql 如何获取此查询中每个技师最后完成的服务?

Mysql 如何获取此查询中每个技师最后完成的服务?,mysql,sql,greatest-n-per-group,Mysql,Sql,Greatest N Per Group,我有这种关系 我很想得到每个Tecnico技术人员最后完成的Servicio.FechaTermino service Servicio 使用此查询: SELECT FechaTermino as FechaTermino, idTecnico, Latitud, Longitud, Nombre, Apellido, Flag, idServicio FROM Servicio, Tecnico, Servicio_Tecnico WHERE Servicio.idServicio = Ser

我有这种关系

我很想得到每个Tecnico技术人员最后完成的Servicio.FechaTermino service Servicio

使用此查询:

SELECT FechaTermino as FechaTermino, idTecnico, Latitud, Longitud, Nombre, Apellido, Flag, idServicio
FROM Servicio, Tecnico, Servicio_Tecnico
WHERE Servicio.idServicio = Servicio_Tecnico.Servicio_idServicio
AND Tecnico.idTecnico = Servicio_Tecnico.Tecnico_idTecnico
AND Completado = 1
我明白了:

观看idServiceCo=52

当我使用Max功能尝试获取每个技师最后一次完成的维修时

SELECT Max(FechaTermino) as FechaTermino, idTecnico, Latitud, Longitud, Nombre, Apellido, Flag, idServicio
FROM Servicio, Tecnico, Servicio_Tecnico
WHERE Servicio.idServicio = Servicio_Tecnico.Servicio_idServicio
AND Tecnico.idTecnico = Servicio_Tecnico.Tecnico_idTecnico
AND Completado = 1
Group by idTecnico
这种情况会发生

idServiceCio=52将消失,它将idServiceCio=8视为最后一个完成的服务


如何获得每位技师最后一次完成的服务?

看起来Latitud、Longitud、IdSevicio字段一直在变化……这是一个问题。跟随标签寻找答案。Funcionó,gracias,muchas gracias。
SELECT UNO.* FROM 
   (SELECT FechaTermino AS FechaTermino, idTecnico, Latitud, Longitud, Nombre, Apellido, Flag, idServicio
   FROM Servicio, Tecnico, Servicio_Tecnico
   WHERE Servicio.idServicio = Servicio_Tecnico.Servicio_idServicio
   AND Tecnico.idTecnico = Servicio_Tecnico.Tecnico_idTecnico
   AND Completado = 1) AS UNO

LEFT OUTER JOIN 

   (SELECT FechaTermino AS FechaTermino, idTecnico, Latitud, Longitud, Nombre, Apellido, Flag, idServicio
   FROM Servicio, Tecnico, Servicio_Tecnico
   WHERE Servicio.idServicio = Servicio_Tecnico.Servicio_idServicio
   AND Tecnico.idTecnico = Servicio_Tecnico.Tecnico_idTecnico
   AND Completado = 1) AS DOS

ON (UNO.idTecnico = DOS.idTecnico AND UNO.FechaTermino < DOS.FechaTermino)
WHERE DOS.idTecnico IS NULL;