1
resposta

Minha solução para um mês e um ano qualquer

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 |

1 resposta

Olá, Daniella!

Parabéns por avançar mais uma etapa! Sua solução está incrível e demonstra todo o seu esforço e dedicação. Continue se desenvolvendo e buscando novos desafios, pois tenho certeza de que você ainda tem muito a conquistar, lhe desejo muito sucesso nesses e nos seus próximos projetos!

Reforço que em casos de dúvidas, conte sempre com o fórum da comunidade Alura! Bons estudos!

Sucesso

Um grande abraço e até mais!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!