Na minha primeira tentativa de rodar o código acabei passando apenas um parametro. Isso retornou um erro 1318. Tentei criar uma condição de tratamento de erro, mas ela não funciona. Tentei criar com If, com case e sem nenhum dos dois. Ocorre que não importa, simplesmente ele acusa o erro.
Existem formas diferentes de tratar esses erros?
CREATE DEFINER=`root`@`localhost` PROCEDURE `Comparativo_Vendas_Case_Cond`(Variavel01 date, Variavel02 date)
BEGIN
declare vMensagem varchar(30);
declare vTOTAL_VENDA01 float;
declare vTOTAL_VENDA02 float;
declare vResultado float;
declare msgErro varchar(30);
declare continue handler for 1318 set msgErro = 'parametros incorretos';
SELECT SUM(B.QUANTIDADE * B.PRECO) into vTOTAL_VENDA01 FROM
NOTAS_FISCAIS A INNER JOIN ITENS_NOTAS_FISCAIS B
ON A.NUMERO = B.NUMERO
WHERE A.DATA_VENDA = Variavel01;
SELECT SUM(B.QUANTIDADE * B.PRECO) into vTOTAL_VENDA02 FROM
NOTAS_FISCAIS A INNER JOIN ITENS_NOTAS_FISCAIS B
ON A.NUMERO = B.NUMERO
WHERE A.DATA_VENDA = Variavel02;
set vResultado = ((vTOTAL_VENDA01/vTOTAL_VENDA02)-1)*100;
Case
when vResultado > 10 then set vMensagem = 'VERDE';
when vResultado >= -10 and vResultado <= 10 then set vMensagem = 'Amarela';
when vResultado < -10 then set vMensagem = 'Vermelho';
end case;
select vMensagem, concat('A porcentagem é de: ',vResultado,'%') as Percentual;
select msgErro;
END