1
resposta

MINHA SOLUÇÃO

Preferi arrendondar a porcentagem por questão estética mesmo.

SELECT X.CPF, X.NOME, X.MES_ANO, X.QUANTIDADE_VENDAS, X.QUANTIDADE_LIMITE,
CASE WHEN (X.QUANTIDADE_LIMITE - X.QUANTIDADE_VENDAS) < 0 THEN 'INVÁLIDA'
ELSE 'VÁLIDA' END AS STATUS_VENDA,
ROUND((1 - (X.QUANTIDADE_LIMITE/X.QUANTIDADE_VENDAS)) * 100, 2) AS PERCENTUAL_DIFERENCA
FROM (
SELECT NF.CPF, TC.NOME, DATE_FORMAT(NF.DATA_VENDA, '%Y-%m') AS MES_ANO, 
SUM(INF.QUANTIDADE) AS QUANTIDADE_VENDAS, 
MAX(TC.VOLUME_DE_COMPRA) AS QUANTIDADE_LIMITE  FROM notas_fiscais NF
INNER JOIN itens_notas_fiscais INF
ON NF.NUMERO = INF.NUMERO
INNER JOIN tabela_de_clientes TC
ON TC.CPF = NF.CPF
GROUP BY NF.CPF, TC.NOME, DATE_FORMAT(NF.DATA_VENDA, '%Y-%m')) X
WHERE (X.QUANTIDADE_LIMITE - X.QUANTIDADE_VENDAS) < 0;
1 resposta

Olá, Grasiele, tudo bem?

A sua query ficou muito legal, você está indo muito bem.

Continue assim e bons estudos!