-- Primeiro criei uma view com o comando abaixo, para deixar o comando do relatório mais simples:
SELECT
TC.NOME AS Cliente,
SUBSTRING(CONVERT(VARCHAR, NF.DATA, 120), 1, 7) AS Período,
SUM(INF.QUANTIDADE) AS [Total Período],
TC.[VOLUME DE COMPRA]
FROM
[NOTAS FISCAIS] AS NF
INNER JOIN
[ITENS NOTAS FISCAIS] AS INF ON NF.NUMERO = INF.NUMERO
INNER JOIN
[TABELA DE CLIENTES] AS TC ON NF.CPF = TC.CPF
GROUP BY
TC.NOME, SUBSTRING(CONVERT(VARCHAR, NF.DATA, 120), 1, 7), TC.[VOLUME DE COMPRA]
ORDER BY
TC.NOME, SUBSTRING(CONVERT(VARCHAR, NF.[DATA], 120),1,7)
-- Em seguida, executei o select abaixo na VW para representar os dados solicitados no exercício (sem o order by, pois já estava ordenado na vw):
SELECT
CLIENTE,
PERÍODO,
[TOTAL PERÍODO],
CONVERT
(DECIMAL(15,2), ( ([TOTAL PERÍODO]/[VOLUME DE COMPRA]) - 1) * 100) AS [VARIAÇÃO],
CASE
WHEN [TOTAL PERÍODO] <= [VOLUME DE COMPRA] THEN 'DENTRO DO LIMITE'
WHEN [TOTAL PERÍODO] > [VOLUME DE COMPRA] THEN 'LIMITE EXCEDIDO'
END AS [STATUS DA VENDA]
FROM
vw_CLIENTES_COMPRAS
WHERE [TOTAL PERÍODO] > [VOLUME DE COMPRA]