Boa tarde, pessoal. Tudo joia?
Seguindo o desafio proposto pelo professor, segue a minha proposta de resolução alternativa
SELECT AUX1.[NOME], AUX1.[Ano Mês], AUX1.[Quantidade Mês], AUX1.[Volume de compra],
CASE WHEN AUX1.[Quantidade Mês] <= AUX1.[VOLUME DE COMPRA] THEN 'VENDA VÁLIDA'
WHEN AUX1.[Quantidade Mês] > AUX1.[VOLUME DE COMPRA] THEN 'VENDA INVÁLIDA'
END AS [STATUS VENDA]
INTO ##TB1
FROM
(
SELECT TC.[NOME], CQ.[Ano Mês], CQ.[Quantidade Mês], TC.[VOLUME DE COMPRA]
FROM
(
SELECT NF.[CPF], SUBSTRING(CONVERT(VARCHAR, NF.[DATA],120),1,7) AS [Ano Mês], SUM(INF.[QUANTIDADE]) AS [Quantidade Mês]
FROM [NOTAS FISCAIS] AS NF INNER JOIN [ITENS NOTAS FISCAIS] AS INF
ON NF.[NUMERO] = INF.[NUMERO]
GROUP BY NF.[CPF], SUBSTRING(CONVERT(VARCHAR, NF.[DATA],120),1,7)
) AS CQ
INNER JOIN [TABELA DE CLIENTES] AS TC
ON CQ.[CPF] = TC.[CPF]
) AS AUX1
ORDER BY AUX1.[NOME], AUX1.[Ano Mês]
SELECT [NOME], [Ano Mês], [Quantidade Mês], [VOLUME DE COMPRA], CONVERT(DECIMAL(15,2),(((([Quantidade Mês]/[VOLUME DE COMPRA]) - 1) * 100))) AS [Variação], [STATUS VENDA]
FROM ##TB1
WHERE [Quantidade Mês] > [VOLUME DE COMPRA]
ORDER BY NOME, [Ano Mês]
Quaisquer dúvidas, por favor, me avisem, por favor. Abraços, pessoal.