I want get the last date of each service. I would like to achieve the following:
x
+-------------------+---------------------+------+------------+---------------+---------------+
| Vin | Concesionario_Crm | OTS | Fecha | Service | Concesionario |
+-------------------+---------------------+------+------------+---------------+---------------+
| JAANLR55EE7102074 | AUTOCONSA UIO | 9 | 23/04/2019 | MANTENIMIENTO | AUTOCONSA UIO|
+-------------------+---------------------+------+------------+---------------+---------------+
| JAANLR55EE7102074 | AUTOCONSA UIO | 9 | 10/09/2018 | MECANICA | AUTOCONSA UIO|
+-------------------+---------------------+------+------------+---------------+---------------+
I tried this but it just get the record when the selected service have the last date
Mantenimiento = "
INSERT INTO SERVICIO
SELECT DISTINCT
t2.Mes_CRM,
t2.Razón_social,
t2.vin,
t2.concesionario_crm,
t1.ots,
t1.fecha,
t2.tipo_servicio,
t2.concesionario
FROM
(
SELECT
MAX(t.Mes_CRM) AS Mes_CRM,
t.vin,
SUM(t.ots) AS ots,
MAX(t.fecha_salida) AS fecha
FROM CASO AS t
GROUP BY t.vin
) AS t1
INNER JOIN CASO AS t2
ON (t1.Mes_CRM = t2.Mes_CRM)
AND (t1.fecha = t2.fecha_salida)
AND (t1.vin = t2.vin)
WHERE (t2.tipo_servicio = 'MANTENIMIENTO')"
Advertisement
Answer
I think you want:
select c.*
from caso as c
where c.fecha = (select max(c2.fecha)
from caso c2
where c2.service = c.service
);