Tips: Declara tres variables: Una que recibe la cantidad, otra el precio y otra que va a acumular la facturación; Haz un loop en el cursor e ve sumando el valor de facturación en cada factura; Exhibe el valor total del límite; Recuerda que la consulta quiere obtener la facturación de un mes y año. El comando a continuación muestra todas las facturas generadas en enero de 2017: SELECT IFa.CANTIDAD, IFa.PRECIO FROM items_facturas IFa INNER JOIN facturas F ON F.NUMERO = IFa.NUMERO WHERE MONTH(F.FECHA_VENTA) = 1 AND YEAR(F.FECHA_VENTA) = 2017; Llamaremos este Stored Procedure como: campo_adicional.
DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `total_facturacion`()
BEGIN
DECLARE fin_c INT DEFAULT 0;
DECLARE vcantidad INT;
DECLARE vprecio, vacumular FLOAT;
DECLARE c CURSOR FOR SELECT IFa.CANTIDAD, IFa.PRECIO FROM items_facturas IFa
INNER JOIN facturas F ON F.NUMERO = IFa.NUMERO
WHERE MONTH(F.FECHA_VENTA) = 1 AND YEAR(F.FECHA_VENTA) = 2017;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET fin_c = 1;
SET fin_c = 0;
SET vcantidad = 0;
SET vprecio = 0;
SET vacumular = 0;
OPEN c;
WHILE fin_c = 0
DO
FETCH c INTO vcantidad, vprecio;
IF fin_c = 0
THEN SET vacumular = vprecio * vcantidad;
END IF;
END WHILE;
SELECT vacumular AS Total_2017;
CLOSE c;
END$$
DELIMITER ;
CALL total_facturacion;