none
Ajuda com Expressão RRS feed

  • Pergunta

  • Bom dia, Possuo uma expressão feita em Excel e preciso passar para uma coluna calculada no SQL Server, porém não retorna o calculo correto, alguém poderia me explicar como funciona no SQL Server? =(((1+(D24/100))^(1/30))-1)*100 aonde D24 será a coluna valor no banco.
    Gabriel Pinheiro
    segunda-feira, 20 de dezembro de 2010 12:47

Respostas

Todas as Respostas

  • Ola Gabriel,

     

    O SQL não reconhece o ^ como potencia, para isso, existe a função power, tente:

    declare

     

    @var as float

     

     

    @var=power(1+(D24/100),(1/30)-1)

    select

     

    @var*100

    set

    segunda-feira, 20 de dezembro de 2010 13:00
    Moderador
  • Cara, foi quase isso, mas ele não traz o mesmo valor do Excel, estranho...
    Gabriel Pinheiro
    segunda-feira, 20 de dezembro de 2010 13:06
  • Poderia, apenas para meus testes, me ifnorma um valor que deve ser passado no D24 e qual valor aparece no excel? (O correto....)
    segunda-feira, 20 de dezembro de 2010 13:09
    Moderador
  • Na D24 0,94 como resultado: 0,03122158
    Gabriel Pinheiro
    segunda-feira, 20 de dezembro de 2010 13:12
  • O excel tah usando somente 2 casas mas o valor eh 0,9409
    Gabriel Pinheiro
    segunda-feira, 20 de dezembro de 2010 13:15
  • Gabriel,

     

    O script:

    declare

     

    @var as decimal(7,5)

    declare

     

    @var2 as decimal(7,5)

    --set @var=power((1+(0.9409/100)),((1/30)-1))

    set

     

    @var=1+(0.9409/100)

    set

     

    @var2=(1/30)-1

    select

     

    @var

    select

     

    @var2

    select

     

    power(@var,@var2)*100

     

    Retorna os valores passo-a-passo, porem, mesmo jogando esses valores em um excel, o valor retornado é: 99.06800

     

    Pegue este exemplo acima meu, e veja se possui algo errado na questão matematica.

    • Sugerido como Resposta Eder Costa segunda-feira, 3 de janeiro de 2011 16:45
    segunda-feira, 20 de dezembro de 2010 13:28
    Moderador
  • Boa Noite,

    O resultado dependerá diretamente da quantidade de casas decimais envolvidas. O cálculo abaixo bateu com o meu Excel (2010 - 64bits)

    SELECT (POWER(1+(0.9400/100),(1/30.0000))-1) * 100
    

    Retornou 0,031192

    [ ]s,

    Gustavo Maia Aguiar
    http://gustavomaiaaguiar.spaces.live.com

    Compêndio de XML – Preparação para o exame 70-433 - MCTS Microsoft SQL Server 2008 - Database Development
    http://gustavomaiaaguiar.spaces.live.com/blog/cns!F4F5C630410B9865!1161.entry


    Classifique as respostas. O seu feedback é imprescindível
    • Sugerido como Resposta Gustavo Maia Aguiar segunda-feira, 27 de dezembro de 2010 04:29
    • Marcado como Resposta Eder Costa segunda-feira, 3 de janeiro de 2011 16:44
    segunda-feira, 27 de dezembro de 2010 04:28