40 lines
891 B
MySQL
40 lines
891 B
MySQL
|
DELIMITER $$
|
||
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`makePCSGraf`(vDated DATE)
|
||
|
BEGIN
|
||
|
|
||
|
|
||
|
DECLARE vHour INT DEFAULT 0;
|
||
|
DECLARE vMinute INT DEFAULT 0;
|
||
|
DECLARE vBoxes INT;
|
||
|
|
||
|
|
||
|
DROP TEMPORARY TABLE IF EXISTS vn.pcsDay;
|
||
|
CREATE TEMPORARY TABLE vn.pcsDay
|
||
|
SELECT 0 as hh, 0 as mm, 0 as boxes;
|
||
|
|
||
|
-- Creamos una tabla soporte para acumular las cajas a lo largo del dia
|
||
|
WHILE vHour < 24 DO
|
||
|
|
||
|
WHILE vMinute < 59 DO
|
||
|
|
||
|
SET vMinute = vMinute + 1;
|
||
|
|
||
|
INSERT INTO vn.pcsDay(hh,mm) VALUES(vHour, vMinute);
|
||
|
|
||
|
END WHILE;
|
||
|
|
||
|
SET vMinute = -1;
|
||
|
SET vHour = vHour + 1;
|
||
|
|
||
|
END WHILE;
|
||
|
|
||
|
-- Acumulamos
|
||
|
UPDATE vn.pcsDay pd
|
||
|
LEFT JOIN (SELECT * FROM vn.pcs_graf WHERE dia = vDated) pg USING(hh,mm)
|
||
|
SET pd.boxes = pd.boxes + pg.box;
|
||
|
|
||
|
SELECT * FROM vn.pcsDay;
|
||
|
|
||
|
END$$
|
||
|
DELIMITER ;
|