1
resposta

Eu não conseguir entender essa parte SET Variacao = ((FaturamentoFinal / FaturamentoInicial) -1) * 100; teria como explica?

SET Variacao = ((FaturamentoFinal / FaturamentoInicial) -1) * 100;

1 resposta

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!