DELIMITER $$ CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn2008`.`agencia_volume`() BEGIN DECLARE vStarted DATETIME DEFAULT TIMESTAMP(util.VN_CURDATE()); DECLARE vEnded DATETIME DEFAULT TIMESTAMP(util.VN_CURDATE(), '23:59:59'); DROP TEMPORARY TABLE IF EXISTS tmp.ticket_PackagingEstimated; CREATE TEMPORARY TABLE tmp.ticket_PackagingEstimated ( ticketFk INT PRIMARY KEY ,boxes INT DEFAULT 0 ); INSERT INTO tmp.ticket_PackagingEstimated(ticketFk, boxes) SELECT sv.ticketFk, CEIL(1000 * sum(sv.volume) / vc.standardFlowerBox) FROM vn.ticket t JOIN vn.saleVolume sv ON sv.ticketFk = t.id JOIN vn.volumeConfig vc WHERE t.shipped BETWEEN vStarted AND vEnded AND IFNULL(t.packages,0) = 0 GROUP BY t.id; SELECT * FROM ( SELECT ag.id agency_id, CONCAT(RPAD(c.country, 16,' _') ,' ',ag.name) Agencia, count(*) expediciones, sum(t.packages) Bultos, sum(tpe.boxes) Faltan FROM vn.ticket t JOIN vn.warehouse w ON w.id = t.warehouseFk JOIN vn.country c ON w.countryFk = c.id JOIN vn.address a ON a.id = t.addressFk JOIN vn.agencyMode am ON am.id = t.agencyModeFk JOIN vn.agency ag ON ag.id = am.agencyFk JOIN tmp.ticket_PackagingEstimated tpe ON tpe.ticketFk = t.id WHERE t.shipped BETWEEN vStarted AND vEnded AND ag.isOwn = FALSE GROUP BY ag.id ) sub ORDER BY Agencia; DROP TEMPORARY TABLE tmp.ticket_PackagingEstimated; END$$ DELIMITER ;