Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Formatar percentual está gerando valor incorreto

Bom dia, Tentei aplicar formatacao à coluna de percentual mas o resultado fica errado quanto não formatado. Exemplo: de 21,15 , formatado, aparece "2115,00%" Sem formatação:

TC.CPF, TC.NOME, TV.MES_ANO, tc.VOLUME_DE_COMPRA, TV.qtde_total,
    (CASE WHEN
        TC.VOLUME_DE_COMPRA >= TV.QTDE_TOTAL THEN 'VENDAS VÁLIDAS' 
        ELSE 'VENDAS INVÁLIDAS' END) AS RESULTADO,
    Round((1 - (TC.VOLUME_DE_COMPRA/TV.Qtde_TOTAL)) * 100,2) AS PERCENTUAL

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

com formatação

    TC.CPF, TC.NOME, TV.MES_ANO, tc.VOLUME_DE_COMPRA, TV.qtde_total,
    (CASE WHEN
        TC.VOLUME_DE_COMPRA >= TV.QTDE_TOTAL THEN 'VENDAS VÁLIDAS' 
        ELSE 'VENDAS INVÁLIDAS' END) AS RESULTADO,
    Format(Round((1 - (TC.VOLUME_DE_COMPRA/TV.Qtde_TOTAL)) * 100,2),'#,##0.00 %') AS PERCENTUAL

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

2 respostas
solução!

Oii, Gustavo! Tudo bem?

Como sugestão, teste ajustar a expressão de FORMAT onde o valor seja dividido por 100 antes da formatação. Porque o SQL Serve está interpretando que a parte inteira do valor é um percentual, e na sugestão faremos ele entender que o percentual como é.

Format(Round(((1 - (TC.VOLUME_DE_COMPRA/TV.Qtde_TOTAL)) * 100) / 100, 2), '#,##0.00 %') AS PERCENTUAL

Espero que a sugestão te ajude. Conte sempre conosco por aqui.

Bons estudos e até mais!

Obrigado Nathalia, deu certo.