1
resposta

[Sugestão] Minha resolução usando FORMAT

Acabei encontrando a função FORMAT, usei ela pois ela formata o numero em texto e mantem as casas decimais mesmo que seja .00, mas achei ela um pouco mais lenta, mas como a base de dados é pequena não faz tanta diferença.

SELECT TC.CPF, TC.NOME, TC.VOLUME_DE_COMPRA, TV.MES_ANO, TV.QUANTIDADE_TOTAL,
(CASE WHEN TC.VOLUME_DE_COMPRA >= TV.QUANTIDADE_TOTAL 
    THEN 'VENDAS VÁLIDAS' 
    ELSE 'VENDAS INVÁLIDAS' END) AS RESULTADO,
FORMAT((1 - (TC.VOLUME_DE_COMPRA / TV.QUANTIDADE_TOTAL)) * 100, 'N2') AS PORCENTAGEM_PARA_SE_ADEQUAR_AO_LIMITE
FROM TABELA_DE_CLIENTES TC
INNER JOIN (
    SELECT NF.CPF, CONVERT(VARCHAR(7), NF.DATA_VENDA, 120) AS MES_ANO, SUM(INF.QUANTIDADE) AS QUANTIDADE_TOTAL
    FROM NOTAS_FISCAIS NF
    INNER JOIN ITENS_NOTAS_FISCAIS INF
    ON NF.NUMERO = INF.NUMERO
    GROUP BY NF.CPF, CONVERT(VARCHAR(7), NF.DATA_VENDA, 120)
) TV
ON TC.CPF = TV.CPF
WHERE TC.VOLUME_DE_COMPRA < TV.QUANTIDADE_TOTAL 
AND   TV.MES_ANO = '2015-01';

Garanta sua matrícula hoje e ganhe + 2 meses grátis

Continue sua jornada tech com ainda mais tempo para aprender e evoluir

Quero aproveitar agora
1 resposta

Oi, Ycaro! Como vai?

Agradeço por compartilhar seu código com a comunidade Alura.

Do jeito que você explicou, é interessante ver que você utilizou a função FORMAT para manter as casas decimais, garantindo um resultado visual consistente mesmo com valores terminando em .00. É uma escolha que funciona bem para bases pequenas e demonstra atenção aos detalhes da apresentação dos dados.

Qualquer dúvida que surgir, compartilhe no fórum. Abraços e bons estudos!

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!