1
resposta

Minha Solução

CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_mais_um_campo`(mes int, ano int)
BEGIN
    declare fim int default 0;
    declare vQuantidade int default 0;
    declare vPreco, faturamento double 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) = mes AND YEAR(NF.DATA_VENDA) = ano;
    declare continue handler for not found set fim = 1;
    open c;
        while fim = 0 
            do
                fetch c into vQuantidade, vPreco;
                if fim = 0 then
                    set faturamento = faturamento + (vQuantidade * vPreco);
                end if;
            end while;
    close c;
    select round(faturamento,2); 
END
1 resposta

Oi, Damião!

Parabéns pela conclusão do desafio. Essa procedure calcula o faturamento total com base na quantidade e preço de itens vendidos em notas fiscais para um determinado mês e ano.

Continue praticando e conte conosco quando surgirem dúvidas.

Abraços!