DELIMITER $$ CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `bi`.`comparativa_add`() BEGIN DECLARE lastCOMP INT; # Se trata de una variable para almacenar el ultimo valor del Periodo DECLARE vMaxPeriod INT; DECLARE vMaxWeek INT; SELECT t.period, t.`week` INTO vMaxPeriod, vMaxWeek FROM vn.`time` t WHERE t.dated = util.VN_CURDATE(); SELECT MAX(Periodo) INTO lastCOMP FROM vn2008.Comparativa; -- Fijaremos las ventas con más de un mes de antiguedad en la tabla Comparativa IF lastCOMP < vMaxPeriod - 3 AND vMaxWeek > 3 THEN REPLACE vn2008.Comparativa(Periodo, Id_Article, warehouse_id, Cantidad,price) SELECT tm.period as Periodo, m.Id_Article, t.warehouse_id, sum(m.Cantidad), sum(v.importe) FROM bs.ventas v JOIN vn2008.time tm ON tm.date = v.fecha JOIN vn2008.Movimientos m ON m.Id_Movimiento = v.Id_Movimiento JOIN vn2008.Tipos tp ON tp.tipo_id = v.tipo_id JOIN vn2008.reinos r ON r.id = tp.reino_id JOIN vn2008.Tickets t ON t.Id_Ticket = m.Id_Ticket WHERE tm.period BETWEEN lastCOMP AND vMaxPeriod - 3 AND t.Id_Cliente NOT IN(400,200) AND t.warehouse_id NOT IN (0,13) GROUP BY m.Id_Article, Periodo, t.warehouse_id; END IF; END$$ DELIMITER ;