1
resposta

[Sugestão] Solução do exercício para qualquer mês

DELIMITER $$
USE `sucos_vendas`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `mais_um_campo`(vMes int, vAno 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 INF.QUANTIDADE, INF.PRECO 
from 
itens_notas_fiscais INF
inner join
notas_fiscais NF 
on NF.NUMERO = INF.NUMERO
where month(NF.DATA_VENDA) = vMes and year(NF.DATA_VENDA) = vAno;

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 vFaturamento as TOTAL_LIMITE_MES;

END$$

DELIMITER ;
;
1 resposta

Oi, Jorge! Tudo certo por aí?

É isso aí! Parabéns pela resolução do exercício, gostei bastante de como ficou sua Stored Procedure. O momento de praticar é muito importante para a consolidação de conhecimentos, continue assim!

Caso surja alguma dúvida ao decorrer dos seus estudos, fico à disposição para ajudar.

Um forte abraço!