drop procedure weekWaste_byWorker; create definer = root@`%` procedure weekWaste_byWorker__(IN vWorkerFk int) BEGIN DECLARE vWeek INT; DECLARE vYear INT; SELECT week, year INTO vWeek, vYear FROM vn.time WHERE dated = TIMESTAMPADD(WEEK,-1,CURDATE()); SELECT *, 100 * mermas / total as porcentaje FROM ( SELECT ws.family, sum(ws.saleTotal) as total, sum(ws.saleWaste) as mermas FROM bs.waste ws JOIN vn.worker w ON w.user = ws.buyer WHERE year = vYear AND week = vWeek AND w.id = vWorkerFk GROUP BY family ) sub ORDER BY porcentaje DESC; END;