Procedure:
CREATE DEFINER=`root`@`localhost` PROCEDURE `Comparativo_Vendas`(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;
if DiferencaPercentual > 10 then
set mensagem = 'VERDE';
elseif DiferencaPercentual >-10 then
set mensagem = 'AMARELA';
elseif DiferencaPercentual <-10 then
set mensagem = 'VERMELHA';
end if;
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
Chamando a procedure:
call Comparativo_Vendas('2015-01-03','2015-01-04');