none
função tir do excel para sql server RRS feed

  • Pergunta

  • Pessoal, existe uma função no excel chamada tir.

    existe alguma função ou forma de calcular essa fórmula no sql server?

    terça-feira, 28 de fevereiro de 2012 17:13

Respostas

  • Rafa-Martin,

    Você precisará compreender a fórmula, e criar uma função personalizada. Os parâmetros servirão como variáveis para obtenção do valor do TIR.

    Você também poderá, após criar a função, incluir uma "persisted column", na sua tabela. Quando novos dados forem inseridos, o SQL executa a function e alimenta o novo campo.

    para consulta:

    http://www.faculdadeobjetivo.com.br/arquivos/MetodoManual.pdf 

    Se útil, classifique.


    Dhiego Piroto - MCP | MCTS SQL Server 2008 Developer | Email: dhiegopiroto@gmail.com


    • Editado DhiegoPiroto terça-feira, 28 de fevereiro de 2012 18:00
    • Sugerido como Resposta DhiegoPiroto terça-feira, 28 de fevereiro de 2012 21:12
    • Marcado como Resposta Eder Costa terça-feira, 6 de março de 2012 16:45
    terça-feira, 28 de fevereiro de 2012 17:48
  • Boa Noite,

    É por isso que o Excel é o Excel e o SQL Server é o SQL Server. O Excel tem fórmulas fantásticas e é um dos melhores softwares já inventados na minha opinião. Só que planilhas têm limitações de escalabilidade. Já o SQL Server é um dos melhores bancos de dados, mas como todo banco de dados, jamais terá a flexibilidade que tem uma planilha eletrônica.

    O SQL Server não dispõe de uma função que represente a TIR de um investimento. De fato você terá que criar uma, mas sinceramente acho que criar uma função no SQL Server via T-SQL seja muito complexo e pouco performático, especialmente quando você estiver utilizando grandes fluxos de caixa. Usar colunas persistidas não se aplica nesse caso, já que a TIR normalmente envolverá um cálculo com vários valores e dificilmente estarão todos na mesma linha o que inviabiliza o uso de colunas persistidas.

    Minha recomendação é apostar no CLR, pois, funções como TIR, VPL, VF, etc são contempladas em várias bibliotecas e com certeza disponíveis no Framework .NET. Bastaria pegar uma classe e adaptar para depois montar o Assembly. Como o cálculo da TIR é mais CPU do que dados, possivelmente o CLR é a melhor alternativa.

    [ ]s,

    Gustavo Maia Aguiar
    Blog: http://gustavomaiaaguiar.wordpress.com
    Vídeos:http://www.youtube.com/user/gmasql


    Classifique as respostas. O seu feedback é imprescindível

    • Sugerido como Resposta Gustavo Maia Aguiar terça-feira, 28 de fevereiro de 2012 23:21
    • Marcado como Resposta Eder Costa terça-feira, 6 de março de 2012 16:45
    terça-feira, 28 de fevereiro de 2012 23:21

Todas as Respostas

  • Olá Rafa-Martin,

    Infelizmente não. O SQL não possui nenhuma função nativa para calcular a Taxa Interna de Retorno (TIR). Você precisará construir uma função.

    Abraços.

    se útil, classifique.


    Dhiego Piroto - MCP | MCTS SQL Server 2008 Developer | Email: dhiegopiroto@gmail.com


    • Editado DhiegoPiroto terça-feira, 28 de fevereiro de 2012 17:20
    terça-feira, 28 de fevereiro de 2012 17:20
  • mais como seria essa fórmula? porque o tir não chega num valor exato.

    terça-feira, 28 de fevereiro de 2012 17:39
  • Rafa-Martin,

    Você precisará compreender a fórmula, e criar uma função personalizada. Os parâmetros servirão como variáveis para obtenção do valor do TIR.

    Você também poderá, após criar a função, incluir uma "persisted column", na sua tabela. Quando novos dados forem inseridos, o SQL executa a function e alimenta o novo campo.

    para consulta:

    http://www.faculdadeobjetivo.com.br/arquivos/MetodoManual.pdf 

    Se útil, classifique.


    Dhiego Piroto - MCP | MCTS SQL Server 2008 Developer | Email: dhiegopiroto@gmail.com


    • Editado DhiegoPiroto terça-feira, 28 de fevereiro de 2012 18:00
    • Sugerido como Resposta DhiegoPiroto terça-feira, 28 de fevereiro de 2012 21:12
    • Marcado como Resposta Eder Costa terça-feira, 6 de março de 2012 16:45
    terça-feira, 28 de fevereiro de 2012 17:48
  • Boa Noite,

    É por isso que o Excel é o Excel e o SQL Server é o SQL Server. O Excel tem fórmulas fantásticas e é um dos melhores softwares já inventados na minha opinião. Só que planilhas têm limitações de escalabilidade. Já o SQL Server é um dos melhores bancos de dados, mas como todo banco de dados, jamais terá a flexibilidade que tem uma planilha eletrônica.

    O SQL Server não dispõe de uma função que represente a TIR de um investimento. De fato você terá que criar uma, mas sinceramente acho que criar uma função no SQL Server via T-SQL seja muito complexo e pouco performático, especialmente quando você estiver utilizando grandes fluxos de caixa. Usar colunas persistidas não se aplica nesse caso, já que a TIR normalmente envolverá um cálculo com vários valores e dificilmente estarão todos na mesma linha o que inviabiliza o uso de colunas persistidas.

    Minha recomendação é apostar no CLR, pois, funções como TIR, VPL, VF, etc são contempladas em várias bibliotecas e com certeza disponíveis no Framework .NET. Bastaria pegar uma classe e adaptar para depois montar o Assembly. Como o cálculo da TIR é mais CPU do que dados, possivelmente o CLR é a melhor alternativa.

    [ ]s,

    Gustavo Maia Aguiar
    Blog: http://gustavomaiaaguiar.wordpress.com
    Vídeos:http://www.youtube.com/user/gmasql


    Classifique as respostas. O seu feedback é imprescindível

    • Sugerido como Resposta Gustavo Maia Aguiar terça-feira, 28 de fevereiro de 2012 23:21
    • Marcado como Resposta Eder Costa terça-feira, 6 de março de 2012 16:45
    terça-feira, 28 de fevereiro de 2012 23:21