Solucionado (ver solución)
Solucionado
(ver solución)
1
respuesta

Ej 3.4.9 SP - Ventas anuales con Case

USE `jugos_ventas`;
DROP procedure IF EXISTS `comparacion_ventas_case`;

DELIMITER $$
USE `jugos_ventas`$$
CREATE PROCEDURE `comparacion_ventas_case` (fec_ref date, fec_cmp date)
BEGIN
DECLARE vmensaje varchar(30);
DECLARE vresultado float;
DECLARE vresultado1 float;
DECLARE vresultado2 float;

SELECT SUM(B.CANTIDAD * B.PRECIO) AS TOTAL_VENTA INTO vresultado1 FROM 
facturas A INNER JOIN items_facturas B
ON A.NUMERO = B.NUMERO
WHERE A.FECHA_VENTA = fec_ref;

SELECT SUM(B.CANTIDAD * B.PRECIO) AS TOTAL_VENTA INTO vresultado2 FROM 
facturas A INNER JOIN items_facturas B
ON A.NUMERO = B.NUMERO
WHERE A.FECHA_VENTA = fec_cmp;

set vresultado = vresultado2 / vresultado1;

case vresultado
when vresultado > 1.10 then set vmensaje = 'Verde';
when (vresultado <= 1.10 || vresultado > 0.90) then set vmensaje = 'Amarillo';
when vresultado <= 0.90 then set vmensaje = 'Rojo';
end case;

select vmensaje;

END$$

DELIMITER ;
1 respuesta
solución!
USE `jugos_ventas`;
DROP procedure IF EXISTS `comparacion_ventas_case`;

DELIMITER $$
USE `jugos_ventas`$$
CREATE PROCEDURE `comparacion_ventas_case` (fec_ref date, fec_cmp date)
BEGIN
DECLARE vmensaje varchar(30);
DECLARE vresultado float;
DECLARE vresultado1 float;
DECLARE vresultado2 float;

SELECT SUM(B.CANTIDAD * B.PRECIO) AS TOTAL_VENTA INTO vresultado1 FROM 
facturas A INNER JOIN items_facturas B
ON A.NUMERO = B.NUMERO
WHERE A.FECHA_VENTA = fec_ref;

SELECT SUM(B.CANTIDAD * B.PRECIO) AS TOTAL_VENTA INTO vresultado2 FROM 
facturas A INNER JOIN items_facturas B
ON A.NUMERO = B.NUMERO
WHERE A.FECHA_VENTA = fec_cmp;

set vresultado = vresultado2 / vresultado1;

case vresultado
when vresultado > 1.10 then set vmensaje = 'Verde';
when (vresultado <= 1.10 || vresultado > 0.90) then set vmensaje = 'Amarillo';
when vresultado <= 0.90 then set vmensaje = 'Rojo';
end case;

select vmensaje;

END$$

DELIMITER ;