1
resposta

Resultado de uma forma diferente

Boa tarde! Fiz de uma forma um pouco diferente da demonstrada pelo professor, parece funcionar corretamente, alguma observação em fazer assim ou está correto também?

CREATE DEFINER=`root`@`localhost` PROCEDURE `comparativo_vendas`(vDatavenda date, vDatavenda2 date)
BEGIN
declare vResultado float;
declare vResultado2 float;
declare vMensagem varchar(30);
SELECT SUM(B.QUANTIDADE * B.PRECO) into vResultado FROM 
NOTAS_FISCAIS A INNER JOIN ITENS_NOTAS_FISCAIS B
ON A.NUMERO = B.NUMERO
WHERE A.DATA_VENDA = vDatavenda;
SELECT SUM(B.QUANTIDADE * B.PRECO) into vResultado2 FROM 
NOTAS_FISCAIS A INNER JOIN ITENS_NOTAS_FISCAIS B
ON A.NUMERO = B.NUMERO
WHERE A.DATA_VENDA = vDatavenda2;
IF vResultado * 1.10 < vResultado2 THEN
set vMensagem = 'VERDE';
ELSEIF vResultado * 1.10 > vResultado2 AND vResultado * 0.90 < vResultado2 then 
set vMensagem = 'AMARELO';
ELSE
SET vMensagem = 'VERMELHO';
END IF;
select vResultado, vResultado2, vMensagem;
END
1 resposta

Olá Leandro, tudo bem?

Parabéns pela Procedure Leandro, ela funcionou direitinho e não identifiquei nenhum problema, achei muito legal a forma como você retornou o resultado, passando os valores para variáveis.

Foi bem legal também você ter compartilhado aqui com a gente a sua resposta para atividade Leandro :).

Continue assim e bons estudos!