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