1
resposta

RESPOSTA

CREATE DEFINER=`root`@`localhost` PROCEDURE `Comparativo_Vendas_Case_Cond`(VDataVenda1 date, VDdataVenda2 date)
BEGIN

    DECLARE TotalNotas1 float;
    DECLARE TotalNotas2 float;
    DECLARE DiferencaTotalNotas float;
    DECLARE DiferencaPercentual float;
    DECLARE Mensagem varchar(20);
    
    SELECT SUM(B.QUANTIDADE * B.PRECO) into TotalNotas1 
    FROM NOTAS_FISCAIS A INNER JOIN ITENS_NOTAS_FISCAIS B
    ON A.NUMERO = B.NUMERO
    WHERE A.DATA_VENDA = VDatavenda1;
    
    SELECT SUM(B.QUANTIDADE * B.PRECO) into TotalNotas2 
    FROM NOTAS_FISCAIS A INNER JOIN ITENS_NOTAS_FISCAIS B
    ON A.NUMERO = B.NUMERO
    WHERE A.DATA_VENDA = VDdataVenda2;
    
    SET DiferencaTotalNotas = TotalNotas2  - TotalNotas1 ;
    SET DiferencaPercentual = ((100 * DiferencaTotalNotas))/TotalNotas2;
    
    CASE
        WHEN DiferencaPercentual > 10 then set mensagem = 'VERDE';
        WHEN DiferencaPercentual >-10 then set mensagem = 'AMARELA';
        ELSE  set mensagem = 'VERMELHA';
   END CASE;
    
   SELECT concat('R$ ',format(TotalNotas1,2,'de_DE')) as TotalNotasData1, concat('R$ ',format(TotalNotas2,2,'de_DE')) as TotalNota2, concat('R$ ',format(DiferencaTotalNotas,2,'de_DE')) as DiferencaTotaldasNotas, concat(format(DiferencaPercentual,5,2), ' %') as DiferencaPercentual, mensagem; -- coloca no formato moeda
    
END
1 resposta

Oii, Daniela! Tudo bem?

É muito legal acompanhar sua evolução por aqui!

Você está no caminho certo, podemos fazer duas pequenas alterações.

  1. Podemos adicionar < 10 THEN SELECT 'Amarelo' nessa linha de código para poder realizar a comparação de forma assertiva:
WHEN DiferencaPercentual >-10 AND DiferencialPorcetual THEN SELECT 'AMARELO'
  1. Adicionar a comparação <= -10 e o WHEN na linha do código da cor vermelha:
WHEN Variacao <= -10 THEN SELECT 'Vermelho';

E por fim, finalizar com o END CASE.

Espero que as dicas te ajude e conte com a Alura para evoluir nos estudos!

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

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software