none
Erro em cálculo Analysis Services

    Pergunta

  • Olá.

    Tenho um cubo e preciso fazer um cálculo para me retornar um valor e em seguida dar um update no cubo.

     

    Ao executar a query o valor do numero1 vem 296.66,valor do Numero2 vem 2.5 e o Resultado que no caso era pra trazer 299.16 está  trazendo 400.

     

    Alguém saberia dizer o que está errado na query ?

     

    With Member [Account].[Default].[Resultado] as '[Account].[Default].&[Numero1]  +  [Account].[Default].&[Numero2]'
    Select 
    (
    { [Time].[Default].[Month].&[2011M02] } * 
    { [Perspective].[Default].&[BASE] } * 
    { [Account].[Default].&[Resultado],[Account].[Default].&[Numero1],[Account].[Default].[Numero2]} *
      [Version].[Default].&[ACT] ) on 1,
    ([Measures].[Valor])on 0 from [Cubinhoo]
    
    

     

    • Tipo Alterado Thalita Andrade segunda-feira, 19 de dezembro de 2011 17:55 Erro de digitação
    segunda-feira, 19 de dezembro de 2011 17:47

Todas as Respostas

  • Ola Thalita, boa tarde,

    Por favor veja se eh algum criterio que esta distorcendo o seu calculo final em sua query MDX. Recomendo isolar as medidas, colocando-as isoladamente no select para validar os numeros antes.

    Agora uma duvida: vc falou que precisa realizar este calculo pra depois atualizar o cubo? O procedimento correto eh primeiramente atualizar o seu DW e o SSAS por sua vez processar os cubos incrementando/atualizando os novos dados em seu datamart.

    Espero ter ajudado.


    Eduardo Gomes - http://www.h1solucoes.com.br - Twitter: @edugp_sp
    segunda-feira, 19 de dezembro de 2011 19:35
  • Boa tarde Eduardo,

     

    Então eu coloquei no select  os valores isolados..um valor veio 370 e o outro 30 resultando no 400 que eu tinha citado antes.

    Estou iniciando meus estudos em Mdx  e estou com um pouco de dificuldade,então achei que o correto seria fazer esse cálculo e usar o valor no Update.

     

    Mas se não é assim então como seria ?

     

     

    Obrigada pela ajuda.

    segunda-feira, 19 de dezembro de 2011 19:51
  • Oi Thalita, boa noite,

    Fique tranquila, eu ainda tenho muito que aprender ainda com o analysis, mas o que estiver ao meu alcance, pode contar comigo.

    Talvez uma solução para o seu caso seria criar membros calculados no momento em que estiver desenvolvendo o seus cubos.

    Segue o link com o passo-a-passo para criá-los.

    http://msdn.microsoft.com/en-us/library/ms174826.aspx

    Com os membros calculados vc pode realizar qualquer expressão com as medidas já criadas por vc em seu cubo.

    Espero ter ajudado.

    Abs.


    Eduardo Gomes - http://www.h1solucoes.com.br - Twitter: @edugp_sp
    segunda-feira, 19 de dezembro de 2011 22:49
  • Bom dia Eduardo,

    Já agradeço pela apoio.

    Não sei se criando os membros calculados quando estivesse desenvolvendo os cubos resolveria meu problema,

    pois o usuário vai armazenar a fórmula no membro,porém o resultado só deverá aparecer quando o usuário executar um processo

    e acredito que com a fórmula no membro,a qualquer alteração de um dos valores da fórmula,o membro resultado seria alterado.

    Vc acha que criando os membros calculados resolve meu problema ?

     

     

    Obrigada.

     

    terça-feira, 20 de dezembro de 2011 10:09
  • Thalita, bom dia.

    O usuario entrarah com o valor para a execuçao do calculo? Eh isso? Cite um exemplo de como seria o processo juntamente com o usuario.

    Abs.


    Eduardo Gomes - http://www.h1solucoes.com.br - Twitter: @edugp_sp
    terça-feira, 20 de dezembro de 2011 10:50
  • Olá Eduardo.

     

    Então..o usuário é quem digita a fórmula.

    Por exemplo,ele escolheu que o membro Resultado será o numero1 + numero2.

    Só que mesmo quando ele altera o valor do numero1 ou numero2 o membro Resultado não tem que sofrer alterações.

    As alterações só devem ocorrer quando o usuário escolher executar o cálculo.

     

    Obrigada.

     

    terça-feira, 20 de dezembro de 2011 11:00
  • Thalita,

    Como seria a interaçao dos dados do cubo com o usuario? Ele vai manipular esses dados em qual client? Excel? Report ? SharePoint?

    Desconheço uma forma de alterar os valores retornados do cubo em tempo de execuçao e via interface. Talvez seja um operacao muito arriscada para o usuario final executar esta alteracao. Talvez uma solucao seria montar uma interface visual no excel onde o usuario consumiria dados(inalterados) do cubo com a flexibilidade do excel. Ai o usuario poderia colocar seus dados variaveis no excel e calcular com os dados retornados do cubo.

    Abs.


    Eduardo Gomes - http://www.h1solucoes.com.br - Twitter: @edugp_sp
    terça-feira, 20 de dezembro de 2011 11:18
  • Eduardo,

    Os campos são carregados em branco num datagridview e conforme o usuário executar o processo,o  valor irá ser alterado.

     

    Essa parte do Excel não dá pra fazer pois o cliente exige que seja utilizado DataGridView.

     

     

    Obrigada

     

    terça-feira, 20 de dezembro de 2011 13:10
  • Thalita, entao vc pode realizar este calculo via programaçao dentro da datagridview. Desconheço uma forma de alterar os dados agregados no cubo via datagridview.

    Eh vc que desenvolveu esta interface com o datagridview?

    Abs.


    Eduardo Gomes - http://www.h1solucoes.com.br - Twitter: @edugp_sp
    terça-feira, 20 de dezembro de 2011 14:39
  • Eduardo,

    Vou tentar fazer pelo datagridview então.

     

    A interface com o datagridview não fui eu quem desenvolveu..

     

     

    Obrigada pela ajuda.

     

     

    terça-feira, 20 de dezembro de 2011 18:31
  • Olá,

     

    Estou tentando dar um Update no Cubo da seguinda maneira :

    Update Cube [Orcamento] 
    Set (
    [Periodo].[Default].[Month].&[2011M02],
    [Perspectiva].[Default].&[BASE],
    [Versao].[Default].&[ACT],
    [Contas].[Default].&[Total]) = [Contas].[Default].[Agua] + [Contas].[Default].[Luz]
    
    

    Só que no caso, a intenção era que o total trouxesse o valor da conta de água + o valor da conta de luz de acordo com os membros selecionados que são periodo = 2011M02,Perspectiva = Base,Versão = Act,ou seja,era pra ele trazer por exemplo o valor do mês de fevereiro,porém ele traz do ano todo.

     

    Alguém pode me ajudar ?

     

     

    Obrigada.

    quarta-feira, 21 de dezembro de 2011 11:57
  • Thalita, desculpe a demora em responder, pois estava justamente estudando a respeito de atualizaoes em cubos.

    Eh o seguinte, pelo que vi em algumas documentaçoes, esta instruçao (update cube) soh pode ser utilizado se vc criar uma partiçao no SSAS de seu cubo para escrita (whiteBack). Eh um procedimento um pouco complicado para habilitar o seus dados jah processados a atualizacao.

    Segue o documento que encontrei na net a respeito do assunto:

    https://skydrive.live.com/?sc=documents&cid=b3b19fbcc18c61d3#!/view.aspx?cid=B3B19FBCC18C61D3&resid=B3B19FBCC18C61D3%21202

    Qualquer duvida eh soh postar.

     


    Eduardo Gomes - http://www.h1solucoes.com.br - Twitter: @edugp_sp
    quinta-feira, 22 de dezembro de 2011 19:35
  • Talita, bom tarde.

    Conseguiu resolver este problema?

    Abs.


    Eduardo Gomes - http://www.h1solucoes.com.br - Twitter: @edugp_sp

    quarta-feira, 11 de abril de 2012 15:58