DELIMITER $$ CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn2008`.`scan_rutas_view`() BEGIN /* muestra las rutas agrupadas de los ultimos tres dias, así como una lista de los tickets sin enrutar, agrpados por agencia y fecha*/ select Fecha, Id_Ruta, Matricula, sub.m3, CodigoTrabajador, Agencia, Bultos, w.name as Almacen from ( select r.Fecha, Id_Ruta, r.Id_Trabajador, r.Id_Agencia, Id_Vehiculo, sum(m3) m3, sum(Bultos) Bultos, warehouse_id from Rutas r join Tickets t using(Id_Ruta) where r.Fecha >= timestampadd(day,-3,util.VN_CURDATE()) group by Id_Ruta, warehouse_id union all select ifnull(landing,Fecha), dayofmonth(Fecha) * 100000 + Id_Agencia ruta , count(*) as m3, Id_Agencia, null, null, sum(Bultos), warehouse_id from Tickets where Id_Ruta is null and Fecha between timestampadd(day,-3,util.VN_CURDATE()) and util.dayEnd(util.VN_CURDATE()) group by ruta, warehouse_id ) sub left join Vehiculos using(Id_Vehiculo) left join Agencias using(Id_Agencia) left join Trabajadores using(Id_Trabajador) left join warehouse w on w.id = sub.warehouse_id; END$$ DELIMITER ;