Puse mal la referencia a un campo, que debía ser t1.maxi.
A ver, sv es el alias de la tabla serv_preventivo y lo uso para no tener que escribir su nombre completo, por ejemplo, pongo sv.unidad en lugar de serv_preventivo.unidad, eso sí después de haberlo asignado (lo que me obliga a usarlo siempre para esa tabla en esa consulta dentro del select donde se produce la asignación)
t1 es un alias, pero de una selección cuyos datos pasarían a formar parte de una tabla virtual.
Prueba a ver si ahora
Código sql:
Ver originalSELECT sv.unidad, t1.maxi FROM serv_preventivo sv INNER JOIN
(SELECT unidad, MAX(engrasado) maxi FROM serv_preventivo GROUP BY unidad)t1
ON sv.unidad = t1.unidad AND T1.maxi = sv.engrasado ORDER BY sv.unidad