CREATE DEFINER=`root`@`localhost` PROCEDURE `Mais_Um_Campo`(mes INT, ano INT)
BEGIN
DECLARE fim_do_cursor INT DEFAULT 0;
DECLARE vQuantidade INT;
DECLARE vPreco FLOAT;
DECLARE vFaturamento FLOAT DEFAULT 0;
DECLARE c CURSOR FOR
SELECT quantidade,preco
FROM itens_notas_fiscais INF
INNER JOIN notas_fiscais NF
ON NF.NUMERO = INF.NUMERO
WHERE MONTH(NF.DATA_VENDA) = MES AND YEAR(NF.DATA_VENDA) = ANO ;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET fim_do_cursor = 1;
OPEN c;
WHILE fim_do_cursor = 0
DO
FETCH c INTO vQuantidade, vPreco;
IF fim_do_cursor = 0 THEN
SET vFaturamento = vFaturamento + (vQuantidade * vPreco);
END IF;
END WHILE ;
CLOSE c;
SELECT CONCAT('R$ ', format(vFaturamento,2,'de_DE')) AS Faturamento;
END
call Mais_Um_Campo(1,2017)
Resultado:
| Fatruramento| | -------- | -------- | -------- | | R$ 3.838.322,50 |