I want get the last date of each service. I would like to achieve the following:
+-------------------+---------------------+------+------------+---------------+---------------+ | 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 );