SELECT X.NOME, X.MES, X.ANO,
CASE
WHEN X.QUANTIDADE_LIMITE - X.QUANTIDADE_VENDAS < 0 THEN 'INVÁLIDA'
ELSE 'VÁLIDA'
END AS VENDA_NO_MES,
ABS(VALIDEZ) AS QUANTIDADE_INVÁLIDA,
CONCAT(ROUND(ABS(VALIDEZ/QUANTIDADE_LIMITE*100),2), '%') AS PORCENTAGEM_ESTRAPOLADA
FROM
(SELECT TC.CPF, TC.NOME, MONTH(NF.DATA_VENDA) AS MES, YEAR(NF.DATA_VENDA) AS ANO,
SUM(INF.QUANTIDADE) AS QUANTIDADE_VENDAS, MAX(TC.VOLUME_DE_COMPRA) AS QUANTIDADE_LIMITE,
(TC.VOLUME_DE_COMPRA - SUM(INF.QUANTIDADE)) AS VALIDEZ 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 CPF, YEAR(NF.DATA_VENDA), MONTH(NF.DATA_VENDA)) X
WHERE VALIDEZ < 0;