none
Conversão para Moeda RRS feed

  • Pergunta

  • Boa tarde,

    Não estou conseguindo converter para moeda o valor gerado no CASE, mesmo utilizando o CAST.

    Retorna os valores da seguinte forma: 5800.0000. No caso deveria ser 5.800,00 ou 5800,00.

    Peço ajuda.

    Obrigado.

     

    case when SUBSTRING(a.credito,1,13) = '4.1.01.01.001' then a.valor *-1
    when SUBSTRING(a.credito,1,13) = '4.1.01.01.002' then a.valor *-1
    when SUBSTRING(a.credito,1,13) = '4.1.01.01.003' then a.valor *-1
    when SUBSTRING(a.credito,1,13) = '4.1.01.01.004' then a.valor *-1
    when SUBSTRING(a.credito,1,13) = '4.1.01.01.005' then a.valor *-1
    when SUBSTRING(a.credito,1,13) = '4.1.01.01.006' then a.valor *-1
    when SUBSTRING(a.credito,1,13) = '4.1.01.01.007' then a.valor *-1
    when SUBSTRING(a.credito,1,13) = '4.1.01.01.008' then a.valor *-1
    when SUBSTRING(a.credito,1,13) = '5.1.01.01.001' then a.valor *-1
    when SUBSTRING(a.credito,1,13) = '5.1.01.01.002' then a.valor *-1
    when SUBSTRING(a.credito,1,9) = '5.1.01.02' then a.valor *-1
    when SUBSTRING(a.credito,1,9) = '5.1.01.03' then a.valor *-1
    when SUBSTRING(a.credito,1,9) = '5.1.01.04' then a.valor *-1
    when SUBSTRING(a.credito,1,9) = '5.1.01.05' then a.valor *-1
    when SUBSTRING(a.credito,1,9) = '5.1.01.06' then a.valor *-1
    when SUBSTRING(a.credito,1,9) = '5.1.01.07' then a.valor *-1
    when SUBSTRING(a.credito,1,9) = '5.1.01.08' then a.valor *-1
    when SUBSTRING(a.credito,1,9) = '5.1.01.09' then a.valor *-1
    when SUBSTRING(a.credito,1,9) = '5.1.01.10' then a.valor *-1
    when SUBSTRING(a.credito,1,9) = '5.1.01.11' then a.valor *-1
    when SUBSTRING(a.credito,1,9) = '5.1.01.12' then a.valor *-1
    when SUBSTRING(a.credito,1,9) = '5.1.02.01' then a.valor *-1
    when SUBSTRING(a.credito,1,9) = '5.1.02.03' then a.valor *-1
    when SUBSTRING(a.credito,1,9) = '5.1.03.05' then a.valor *-1
    else cast(a.valor as money) end as 'Valor'

    quinta-feira, 7 de novembro de 2019 18:32

Respostas

Todas as Respostas

  • Gelain,

    Acredito que da maneira que você deseja obter o retorno o mais indicado seria utilizar os tipos de dados Decimal() ou Numeric().


    Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados Relacional e Data Warehouse | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    quinta-feira, 7 de novembro de 2019 18:45
  • Deleted
    quinta-feira, 7 de novembro de 2019 18:51
  • Deleted
    • Marcado como Resposta Gelain quinta-feira, 7 de novembro de 2019 19:12
    quinta-feira, 7 de novembro de 2019 19:09
  • Boa tarde,

    Testei o teu código. Aí ocorreu outro erro. Fiz o seguinte para resolver e deu certo:

    case when SUBSTRING(a.credito,1,13) = '4.1.01.01.001' then cast(a.valor as money) *-1
    when SUBSTRING(a.credito,1,13) = '4.1.01.01.002' then cast(a.valor as money) *-1
    when SUBSTRING(a.credito,1,13) = '4.1.01.01.003' then cast(a.valor as money) *-1
    when SUBSTRING(a.credito,1,13) = '4.1.01.01.004' then cast(a.valor as money) *-1
    when SUBSTRING(a.credito,1,13) = '4.1.01.01.005' then cast(a.valor as money) *-1
    when SUBSTRING(a.credito,1,13) = '4.1.01.01.006' then cast(a.valor as money) *-1
    when SUBSTRING(a.credito,1,13) = '4.1.01.01.007' then cast(a.valor as money) *-1
    when SUBSTRING(a.credito,1,13) = '4.1.01.01.008' then cast(a.valor as money) *-1
    when SUBSTRING(a.credito,1,13) = '5.1.01.01.001' then cast(a.valor as money) *-1
    when SUBSTRING(a.credito,1,13) = '5.1.01.01.002' then cast(a.valor as money) *-1
    when SUBSTRING(a.credito,1,9) = '5.1.01.02' then cast(a.valor as money) *-1
    when SUBSTRING(a.credito,1,9) = '5.1.01.03' then cast(a.valor as money) *-1
    when SUBSTRING(a.credito,1,9) = '5.1.01.04' then cast(a.valor as money) *-1
    when SUBSTRING(a.credito,1,9) = '5.1.01.05' then cast(a.valor as money) *-1
    when SUBSTRING(a.credito,1,9) = '5.1.01.06' then cast(a.valor as money) *-1
    when SUBSTRING(a.credito,1,9) = '5.1.01.07' then cast(a.valor as money) *-1
    when SUBSTRING(a.credito,1,9) = '5.1.01.08' then cast(a.valor as money) *-1
    when SUBSTRING(a.credito,1,9) = '5.1.01.09' then cast(a.valor as money) *-1
    when SUBSTRING(a.credito,1,9) = '5.1.01.10' then cast(a.valor as money) *-1
    when SUBSTRING(a.credito,1,9) = '5.1.01.11' then cast(a.valor as money) *-1
    when SUBSTRING(a.credito,1,9) = '5.1.01.12' then cast(a.valor as money) *-1
    when SUBSTRING(a.credito,1,9) = '5.1.02.01' then cast(a.valor as money) *-1
    when SUBSTRING(a.credito,1,9) = '5.1.02.03' then cast(a.valor as money) *-1
    when SUBSTRING(a.credito,1,9) = '5.1.03.05' then cast(a.valor as money) *-1
    else cast(a.valor as money) end as 'Valor'

    quinta-feira, 7 de novembro de 2019 19:12
  • Deleted
    quinta-feira, 7 de novembro de 2019 19:40