1
resposta

Solução Alternativa

-- 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]
1 resposta

Oi, Jefferson, tudo bem?

Desculpe a demora em te responder!

Muito obrigado por compartilhar essas informações com a comunidade do fórum. Tenho certeza que vai ajudar muitos alunos e alunas que estão estudando este mesmo assunto. Uma única sugestão que faria é aplicar a [VARIAÇÃO] que você criou dentro do SELECT para garantir que ele será apresentado.

Continue se dedicando em seus estudos e caso tenha dúvidas, estarei à disposição. Abraços e bons estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software