Que tal estimados, Tengo la siguiente duda con relación al script que seguidamente les pas ¿a que se debe e error que se genera al setear la variables vcantidad y vprecio? Si las seteo despues de hacer "OPEN c" por ejemplo, o despues de setear fin_c, en ambos casos no me da error ¿cual es la razon?. Además tampoco comprendo por qué el resultado me da un null pese a haber seteado las variables. Aqui va el script:
CREATE DEFINER=`root`@`localhost` PROCEDURE `campo_adicional`(vmes INT, vano INT)
BEGIN
DECLARE fin_c INT DEFAULT 0;
DECLARE vcantidad INT;
DECLARE vprecio DECIMAL;
DECLARE vfacturacion DECIMAL;
DECLARE vfacturacion_total DECIMAL;
SET vcantidad = 0;
SET vprecio = 0;
DECLARE C CURSOR FOR SELECT CANTIDAD, PRECIO FROM items_facturas IFa
INNER JOIN facturas F ON F.NUMERO = IFa.NUMERO
WHERE MONTH(F.FECHA_VENTA) = vmes AND YEAR(F.FECHA_VENTA) = vano;
DECLARE CONTINUE HANDLER FOR NOT FOUND
SET fin_c = 1;
OPEN c;
WHILE fin_c = 0
DO
FETCH c INTO vcantidad, vprecio;
SET vfacturacion = vcantidad * vprecio;
SET vfacturacion_total = vfacturacion_total + vfacturacion;
IF fin_c = 0
THEN SELECT CONCAT("El mes es " + vmes + " y el año es: "+ vano + "y la facturacion
total es " + vfacturacion_total) AS RESULTADO;
END IF;
END WHILE;
CLOSE c;
END
Gracias! Saludos!.