Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
0
respuestas

[Sugerencia] Desafio completado | Facturación Anual

CREATE DEFINER=root@localhost PROCEDURE comparacion_ventas(fecha1 DATE, fecha2 DATE)
BEGIN
/*
Construye un Stored Procedure llamado comparacion_ventas que compare las ventas en dos
fechas distintas (Estas fechas serán los parámetros de la SP). Si la variación porcentual de
estas ventas es mayor al 10% la respuesta debe ser ‘Verde’. Si está entre -10% y 10% debe retornar
‘Amarillo’. Si la variación es menor al -10% debe retornar ‘Rojo’.*/
DECLARE resultado_venta_fecha1 DECIMAL(10,2);
DECLARE resultado_venta_fecha2 DECIMAL(10,2);
DECLARE variacion_porcentual DECIMAL(10,2);
DECLARE resultado_semaforo_variacion VARCHAR(15);

-- Obtener las ventas de cada fecha usando tu función
SET resultado_venta_fecha1 = facturacion_fecha_determinada(fecha1);
SET resultado_venta_fecha2 = facturacion_fecha_determinada(fecha2);

-- Evita división por cero si no hay ventas en fecha1
IF resultado_venta_fecha1 > 0 THEN
    SET variacion_porcentual = ((resultado_venta_fecha2 - resultado_venta_fecha1) / resultado_venta_fecha1) * 100;
ELSE
    SET variacion_porcentual = NULL;
END IF;

-- Determinar el color del semáforo
IF variacion_porcentual > 10 THEN
    SET resultado_semaforo_variacion = 'Verde';
ELSEIF variacion_porcentual >= -10 AND variacion_porcentual <= 10 THEN
    SET resultado_semaforo_variacion = 'Amarillo';
ELSE
    SET resultado_semaforo_variacion = 'Rojo';
END IF;

-- Mostrar resultado de forma clara y compacta
SELECT 
    fecha1 AS Fecha_1,
    resultado_venta_fecha1 AS Venta_Fecha1,
    fecha2 AS Fecha_2,
    resultado_venta_fecha2 AS Venta_Fecha2,
    variacion_porcentual AS Variacion_Porcentual,
    resultado_semaforo_variacion AS Semaforo;

END