Acredito que no exercício, a dica para para usar a fórmula informada para encontrar a diferença em percentual não está retornando o percentual correto: (1 - (X.QUANTIDADE_LIMITE/X.QUANTIDADE_VENDAS)) * 100
, consegui aplicando a seguinte fórmula: (X.QUANTIDADE_LIMITE - X.QUANTIDADE_VENDAS) / X.QUANTIDADE_VENDAS * 100
. Segue a minha cosulta para facilitar a análise e verificar se não estou aplicando a dica incorretamente.
SELECT CLIENTES.NOME,
VENDAS.MES_ANO,
VENDAS.VOLUME_COMPRADO,
CLIENTES.VOLUME_DE_COMPRA,
CASE
WHEN VOLUME_COMPRADO <= VOLUME_DE_COMPRA THEN
'COMPRA VÁLIDA'
ELSE
'COMPRA INVÁLIDA'
END AS IS_COMPRA_VALIDA,
(VENDAS.VOLUME_COMPRADO - CLIENTES.VOLUME_DE_COMPRA) AS DIFERENCA,
(VENDAS.VOLUME_COMPRADO - CLIENTES.VOLUME_DE_COMPRA) /
CLIENTES.VOLUME_DE_COMPRA * 100 AS PERCENTUAL_DE_DIFERENCA,
(1 - (CLIENTES.VOLUME_DE_COMPRA / VENDAS.VOLUME_COMPRADO)) * 100 RESP_PROFESSOR
FROM (SELECT CPF,
TO_CHAR(DATA_VENDA, 'MM/YYYY') MES_ANO,
SUM(QUANTIDADE) VOLUME_COMPRADO
FROM NOTAS_FISCAIS NF
INNER JOIN ITENS_NOTAS_FISCAIS INF
ON NF.NUMERO = INF.NUMERO
GROUP BY CPF, TO_CHAR(DATA_VENDA, 'MM/YYYY')) VENDAS
INNER JOIN (SELECT CPF, NOME, VOLUME_DE_COMPRA FROM TABELA_DE_CLIENTES) CLIENTES
ON VENDAS.CPF = CLIENTES.CPF
WHERE VOLUME_COMPRADO > VOLUME_DE_COMPRA;