Não entendi essa fórmula, a que pensei foi:
((T.QTD_TOTAL - C.VOLUME_DE_COMPRA) / C.VOLUME_DE_COMPRA) * 100
Minha solução:
SELECT
C.CPF,
C.NOME,
T.ANO_MES,
C.VOLUME_DE_COMPRA,
T.QTD_TOTAL,
'INVALIDA' AS VENDA,
ROUND(((T.QTD_TOTAL - C.VOLUME_DE_COMPRA) / C.VOLUME_DE_COMPRA) * 100, 2) AS DIFERENCA_PERCENTUAL
FROM
(SELECT CPF, NOME, VOLUME_DE_COMPRA FROM TABELA_DE_CLIENTES) C
INNER JOIN
(SELECT NF.CPF,
CONVERT(VARCHAR(7), NF.DATA_VENDA) AS ANO_MES,
SUM(INF.QUANTIDADE) AS QTD_TOTAL
FROM NOTAS_FISCAIS NF
INNER JOIN ITENS_NOTAS_FISCAIS INF
ON INF.NUMERO = NF.NUMERO
GROUP BY NF.CPF, CONVERT(VARCHAR(7), NF.DATA_VENDA)) T
ON C.CPF = T.CPF
WHERE
T.ANO_MES = '2015-01'
AND T.QTD_TOTAL >= C.VOLUME_DE_COMPRA;
Inclusive pedi ao ChatGPT uma solução e ele deu a mesma.