Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

Error en el codigo "Opinión del instructor"

DELIMITER $$ CREATE PROCEDURE comparacion_ventas_case(vfecha1 DATE, vfecha2 DATE) BEGIN DECLARE facturacion_inicial FLOAT; DECLARE facturacion_final FLOAT; DECLARE variacion float; DECLARE mensaje VARCHAR(20); SELECT SUM(B.CANTIDAD * B.PRECIO) INTO facturacion_inicial FROM facturas A INNER JOIN items_facturas B ON A.NUMERO = B.NUMERO WHERE A.FECHA_VENTA = vfecha1; SELECT SUM(B.CANTIDAD * B.PRECIO) INTO facturacion_final FROM facturas A INNER JOIN items_facturas B ON A.NUMERO = B.NUMERO WHERE A.FECHA_VENTA = vfecha2; SET variacion = ((facturacion_final / facturacion_inicial) -1) * 100; CASE WHEN variacion > 10 THEN SET mensaje = 'Verde'; WHEN variacion >= -10 AND variacion <= 10 THEN SET mensaje = 'Amarillo'; WHEN varacion < -10 THEN SET mensaje = 'Rojo'; END CASE; SELECT mensaje; END $$

Este es el codigo propuesto por el profesor, pero genera un error, porque no se puede setear el mensaje dentro de case.

Dejo la inquietud. Saludos.

1 respuesta

¡Hola Eduardo!

Gracias por tu aporte, tiene razón, el error que estás experimentando se debe a que estás intentando establecer el valor de la variable mensaje dentro de la estructura CASE, lo cual no es posible en MySQL.

Ya voy a corrijir ele error.

Saludos,

Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios!