DELIMITER $$ CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `vn`.`routeGuessPriority`(IN vRuta INT) BEGIN /* Usa los valores del ultimo año para adivinar el orden de los tickets en la ruta * vRuta id ruta */ UPDATE ticket mt JOIN ( SELECT tt.addressFk, ROUND(IFNULL(AVG(t.priority),0),0) AS priority FROM ticket t JOIN ticket tt ON tt.addressFk = t.addressFk WHERE t.shipped > TIMESTAMPADD(YEAR,-1,util.VN_CURDATE()) AND tt.routeFk = vRuta GROUP BY addressFk ) sub ON sub.addressFk = mt.addressFk SET mt.priority = sub.priority WHERE mt.routeFk = vRuta; END$$ DELIMITER ;