SET Variacao = ((FaturamentoFinal / FaturamentoInicial) -1) * 100;
SET Variacao = ((FaturamentoFinal / FaturamentoInicial) -1) * 100;
Olá Edson!
Este é o cálculo do faturamento, como o exercício pede pra você determinar qual o status da variação, no caso a Stored Procedure deve retornar 'Verde' se a variação percentual destas vendas for maior que 10%, 'Amarela' se for entre -10% e 10% ou 'Vermelho' se for menor que -10%. Então a logica é primeiro calcular o faturamento inicial e o final, e ai encontrar a variação, no caso a diferença percentual entre os dois faturamentos, pra isso é realizado a divisão do faturamento final pelo faturamento inicial, e deve retornar algo como '1.00442' porém esse número deve ser subtraido de 1 pra poder exibir apenas o a variação em decimal, resultando em '0.00442' e por fim transformar esse valor em porcentagem multiplicando o mesmo por 100, assim o resultado final é '0.4429%', e portanto a variação vai ficar com o status Amarela (a variação ficou entre -10% e 10%).
Utilizei os números acima de exemplo, eles foram obtidos com o SELECT com o ROUND para retornar valores inteiros:
SELECT ROUND(SUM(B.QUANTIDADE * B.PRECO)) AS TOTAL_VENDA FROM
NOTAS_FISCAIS A INNER JOIN ITENS_NOTAS_FISCAIS B
ON A.NUMERO = B.NUMERO
WHERE A.DATA_VENDA = '20170301';
Espero que tenha ajudado!