USE `jugos_ventas`;
DROP procedure IF EXISTS `comparacion_ventas`;
USE `jugos_ventas`;
DROP procedure IF EXISTS `jugos_ventas`.`comparacion_ventas`;
;
DELIMITER $$
USE `jugos_ventas`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `comparacion_ventas`(fecha_inicial DATE, fecha_final DATE)
BEGIN
DECLARE valor_inicial DOUBLE;
DECLARE valor_final DOUBLE;
DECLARE resultado VARCHAR(50);
DECLARE porcentaje DOUBLE;
SELECT SUM(B.CANTIDAD * B.PRECIO) INTO valor_inicial FROM
facturas A INNER JOIN items_facturas B
ON A.NUMERO = B.NUMERO
WHERE A.FECHA_VENTA = fecha_inicial;
SELECT SUM(B.CANTIDAD * B.PRECIO) INTO valor_final FROM
facturas A INNER JOIN items_facturas B
ON A.NUMERO = B.NUMERO
WHERE A.FECHA_VENTA = fecha_final;
SET porcentaje = ((valor_inicial - valor_final)/valor_inicial) * 100;
IF porcentaje > 10 THEN
SET resultado = "Verde";
ELSEIF porcentaje <= 10 AND porcentaje >= -10 THEN
SET resultado = "Amarillo";
ELSE
SET resultado = "Rojo";
END IF;
SELECT ROUND(porcentaje) AS Porcentaje, resultado AS Mensaje;
END$$
DELIMITER ;
;
Ejecuta procedimiento
CALL comparacion_ventas('2018-01-01', '2017-01-05');