CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_comparativo_vendas_case`(vdata1 date,vdata2 date)
BEGIN
/*
Esta procedure compara as vendas em duas datas (Estas duas datas serão parâmetros da SP).
Se a variação percentual destas vendas for maior que 10% a resposta deve ser "Verde".
Se for entre -10% e 10% deve retornar "Amarela". Se o retorno form menor que -10% deve retornar "Vermelho".
*/
declare vresultado1 decimal(10,2);
declare vresultado2 decimal(10,2);
declare vvariacao decimal(10,2);
/*
Obtém o valor total das vendas na data vdata1.
*/
SELECT format(SUM(B.QUANTIDADE * B.PRECO),2) INTO vresultado1 FROM
NOTAS A INNER JOIN ITENS_NOTAS B
ON A.NUMERO = B.NUMERO
WHERE A.DATA_VENDA = vdata1;
/*
Obtém o valor total das vendas na data vdata2.
*/
SELECT format(SUM(B.QUANTIDADE * B.PRECO),2) INTO vresultado2 FROM
NOTAS A INNER JOIN ITENS_NOTAS B
ON A.NUMERO = B.NUMERO
WHERE A.DATA_VENDA = vdata2;
/*
Calcula a variação percentual entre as duas datas.
*/
set vvariacao = ((round(vresultado1,2) / round(vresultado2,2)) -1 ) * 100;
CASE
when vvariacao >= 10 then select "Verde";
when vvariacao >= -10 and vvariacao < 10 then select "Amarelo";
else select "Vermelho";
end case;
/*
Retorna o valor total das vendas em cada data, bem como a variação percentual entre as duas datas.
*/
END
call sp_comparativo_vendas_case('2015-01-01','2015-11-25')
Error Code: 1366. Incorrect decimal value: '94,135.10' for column 'vresultado1' at row 1 0.016 sec
Estou recebendo esse erro, alguem pode me dá uma luz?