none
Converter o Conteúdo de Uma Variavel Texto e Numérico. RRS feed

  • Pergunta

  • Prezados Bom dia!

    Estou tentando executar uma query no me banco, e nela exite uma parte onde necessito cria o seguinte calculo:

                  CASE WHEN E.Frete_Pago_Por = 'J' 
                  THEN (EP.Preco_Final + EP.Valor_ICMS_Subs + EP.Valor_Despesas_Ace + EP.Valor_Frete) 
                  ELSE (EP.Preco_Final + EP.Valor_ICMS_Subs + EP.Valor_Despesas_Ace) 
                  END AS 'TOTAL_ITENS',
                  CONVERT(numeric(10,2),'TOTAL_ITENS')/EP.Qtde

    Quando tento executar a calculo da última linha, obtenho a seguinte mensagem:

    Mensagem 8114, Nível 16, Estado 5, Linha 4
    Erro ao converter tipo de dados varchar em numeric.

    Obs.: Todos os campos acima são numérico menos 'TOTAL_ITENS' que é uma variável texto com o seu conteúdo 

             numérico

    Alguém possa me ajudar a corrigir o problema?

    Grato desde já;

    Wagner


    WBarbalho

    quarta-feira, 9 de abril de 2014 12:20

Respostas

  • Wagner, o problema são essas aspas simples que você botou, creio eu. Tire-as e teste novamente. Deixe assim:

    CASE WHEN E.Frete_Pago_Por = 'J' 
                  THEN (EP.Preco_Final + EP.Valor_ICMS_Subs + EP.Valor_Despesas_Ace + EP.Valor_Frete) 
                  ELSE (EP.Preco_Final + EP.Valor_ICMS_Subs + EP.Valor_Despesas_Ace) 
                  END AS TOTAL_ITENS,
                  CONVERT(numeric(10,2),TOTAL_ITENS)/EP.Qtde

    Ele não está convertendo sua soma, e sim o valor "total_itens", por isso o erro.

    • Sugerido como Resposta alexandre_cavaleiro quarta-feira, 9 de abril de 2014 13:39
    • Marcado como Resposta Giovani Cr quinta-feira, 10 de abril de 2014 18:15
    quarta-feira, 9 de abril de 2014 12:45
  • Bom dia,

    Wagner, posso estar enganado mas acredito que não é possível utilizar o resultado do calculo anterior logo em seguida dessa forma; acho que será necessário refazer o calculo. Exemplo com pequena alteração:

        EP.Preco_Final + 
        EP.Valor_ICMS_Subs + 
        EP.Valor_Despesas_Ace +
        CASE WHEN E.Frete_Pago_Por = 'J' 
            THEN EP.Valor_Frete 
            ELSE 0 
        END AS TOTAL_ITENS,
    
        (EP.Preco_Final + 
         EP.Valor_ICMS_Subs + 
         EP.Valor_Despesas_Ace +
         CASE WHEN E.Frete_Pago_Por = 'J' 
             THEN EP.Valor_Frete
             ELSE 0 
         END) /
        EP.Qtde

    Espero que ajude.


    Assinatura: http://www.imoveisemexposicao.com.br

    • Marcado como Resposta Giovani Cr quinta-feira, 10 de abril de 2014 18:15
    quarta-feira, 9 de abril de 2014 12:56

Todas as Respostas

  • Wagner, o problema são essas aspas simples que você botou, creio eu. Tire-as e teste novamente. Deixe assim:

    CASE WHEN E.Frete_Pago_Por = 'J' 
                  THEN (EP.Preco_Final + EP.Valor_ICMS_Subs + EP.Valor_Despesas_Ace + EP.Valor_Frete) 
                  ELSE (EP.Preco_Final + EP.Valor_ICMS_Subs + EP.Valor_Despesas_Ace) 
                  END AS TOTAL_ITENS,
                  CONVERT(numeric(10,2),TOTAL_ITENS)/EP.Qtde

    Ele não está convertendo sua soma, e sim o valor "total_itens", por isso o erro.

    • Sugerido como Resposta alexandre_cavaleiro quarta-feira, 9 de abril de 2014 13:39
    • Marcado como Resposta Giovani Cr quinta-feira, 10 de abril de 2014 18:15
    quarta-feira, 9 de abril de 2014 12:45
  • Bom dia,

    Wagner, posso estar enganado mas acredito que não é possível utilizar o resultado do calculo anterior logo em seguida dessa forma; acho que será necessário refazer o calculo. Exemplo com pequena alteração:

        EP.Preco_Final + 
        EP.Valor_ICMS_Subs + 
        EP.Valor_Despesas_Ace +
        CASE WHEN E.Frete_Pago_Por = 'J' 
            THEN EP.Valor_Frete 
            ELSE 0 
        END AS TOTAL_ITENS,
    
        (EP.Preco_Final + 
         EP.Valor_ICMS_Subs + 
         EP.Valor_Despesas_Ace +
         CASE WHEN E.Frete_Pago_Por = 'J' 
             THEN EP.Valor_Frete
             ELSE 0 
         END) /
        EP.Qtde

    Espero que ajude.


    Assinatura: http://www.imoveisemexposicao.com.br

    • Marcado como Resposta Giovani Cr quinta-feira, 10 de abril de 2014 18:15
    quarta-feira, 9 de abril de 2014 12:56