salix/db/routines/vn2008/procedures/scan_rutas_view.sql

32 lines
1.1 KiB
SQL

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 ;