Inquiridor
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
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- Editado Eduardo Gomes Pereira 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.
-
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 -
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.
-
-
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.
-
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 -
-
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 -
-
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.
-
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:
Qualquer duvida eh soh postar.
Eduardo Gomes - http://www.h1solucoes.com.br - Twitter: @edugp_sp -