Not in no MDX
-
23. ledna 2012 19:18
Pessoal , Boa Tarde
Tenho um Mdx com varios membros e com muitos calculos , nestes membros calculados eu tenho uma dimensao chamada "Conta" como segue o exemplo abaixo.
MEMBER
[DIM CONTA].[CONTA NIVEL3].[Receivables - Pulp] AS
{[Dim Conta].[DimConta].[Conta Nivel1].&[1. Ativo].&[11 - Ativo Circulante].&[112 - Contas a Receber].&[1121 - Celulose]}
Mas para este nivel de conta 1121 preciso descartar algumas contas que comecam com o valor "00007" que estao dentro deset nivel de conta, como faria isto ?
Consigo usar o Filter ou Except ?
ZipDrv
Všechny reakce
-
24. ledna 2012 12:31
Amigo, bom dia,
Coloque da seguinte forma
select non empty {[medida].[medida1] } on columns from ( select ( -{[dimensao].[atributo].&[membro_a_ser_negado] } ) on coluns from [cubo] )
Abs.
Eduardo Gomes - http://www.h1solucoes.com.br - Twitter: @edugp_sp -
24. ledna 2012 12:37
Ola Eduardo ,
Cara nao entendi esta instrunção .
ZipDrv -
24. ledna 2012 12:45
Coloque sua instrução mdx completa juntamente com o atributo e membro q deseja excluir da query q eu monto pra vc.
Abs.
Eduardo Gomes - http://www.h1solucoes.com.br - Twitter: @edugp_sp -
24. ledna 2012 12:55
Ola Eduardo , segue o codigo abaixo , no caso para o nivel de conta 1121 preciso que retorne apenas as contas que sejam < 000070000
Eu nao consigo filtrar isto no Where ?
WITH MEMBER [DIM CONTA].[CONTA NIVEL3].[Receivables - Pulp] AS
([Dim Conta].[DimConta].[Conta Nivel1].&[1. Ativo].&[11 - Ativo Circulante].&[112 - Contas a Receber].&[1121 - Celulose])
MEMBER [DIM CONTA].[CONTA NIVEL3].[Receivables - Others] AS SUM ([Dim Conta].[DimConta].[Conta Nivel1].&[1. Ativo].&[11 - Ativo Circulante].&[112 - Contas a Receber]) -([Dim Conta].[DimConta].[Conta Nivel1].&[1. Ativo].&[11 - Ativo Circulante].&[112 - Contas a Receber].&[1121 - Celulose]) +([Dim Conta].[DimConta].[Conta Nivel1].&[1. Ativo].&[11 - Ativo Circulante].&[114 - Créditos Diversos].&[1145 - Construção Estrada Conv. Governo]) +([Dim Conta].[DimConta].[Conta Nivel1].&[1. Ativo].&[11 - Ativo Circulante].&[114 - Créditos Diversos].&[1142 - Adiantamentos]) +([Dim Conta].[DimConta].[Conta Nivel1].&[1. Ativo].&[11 - Ativo Circulante].&[114 - Créditos Diversos].&[1141 - Cheques em Cobrança])
SELECT ({[DIM CONTA].[CONTA NIVEL3].[Receivables - Pulp] ,[DIM CONTA].[CONTA NIVEL3].[Receivables - Others]} ,{[Dim Date].[English Month Name].[January] ,[Dim Date].[English Month Name].[February] ,[Dim Date].[English Month Name].[March] ,[Dim Date].[English Month Name].[April] ,[Dim Date].[English Month Name].[May] ,[Dim Date].[English Month Name].[June] ,[Dim Date].[English Month Name].[July] ,[Dim Date].[English Month Name].[August] ,[Dim Date].[English Month Name].[September] ,[Dim Date].[English Month Name].[October] ,[Dim Date].[English Month Name].[November] ,[Dim Date].[English Month Name].[December] ,[Dim Date].[English Month Name].[YTD]}) ON ROWS ,
{([MEASURES].[VALOR MOEDA TRANSACAO])} ON COLUMNS
FROM [CUBO BALANCO] WHERE {[Dim Date].[Calendar Year].&[2011]}
ZipDrv -
24. ledna 2012 14:11
Tente assim,
WITH MEMBER [DIM CONTA].[CONTA NIVEL3].[Receivables - Pulp] AS
[Dim Conta].[DimConta].[Conta Nivel1].&[1. Ativo].&[11 - Ativo Circulante].&[112 - Contas a Receber].&[1121 - Celulose])
MEMBER [DIM CONTA].[CONTA NIVEL3].[Receivables - Others] AS SUM ([Dim Conta].[DimConta].[Conta Nivel1].&[1. Ativo].&[11 - Ativo Circulante].&[112 - Contas a Receber]) -([Dim Conta].[DimConta].[Conta Nivel1].&[1. Ativo].&[11 - Ativo Circulante].&[112 - Contas a Receber].&[1121 - Celulose]) +([Dim Conta].[DimConta].[Conta Nivel1].&[1. Ativo].&[11 - Ativo Circulante].&[114 - Créditos Diversos].&[1145 - Construção Estrada Conv. Governo]) +([Dim Conta].[DimConta].[Conta Nivel1].&[1. Ativo].&[11 - Ativo Circulante].&[114 - Créditos Diversos].&[1142 - Adiantamentos]) +([Dim Conta].[DimConta].[Conta Nivel1].&[1. Ativo].&[11 - Ativo Circulante].&[114 - Créditos Diversos].&[1141 - Cheques em Cobrança])
SELECT ({ [DIM CONTA].[CONTA NIVEL3].[Receivables - Pulp] ,
[DIM CONTA].[CONTA NIVEL3].[Receivables - Others]} ,
{[Dim Date].[English Month Name].[January] ,
[Dim Date].[English Month Name].[February] ,
[Dim Date].[English Month Name].[March] ,
[Dim Date].[English Month Name].[April] ,
[Dim Date].[English Month Name].[May] ,
[Dim Date].[English Month Name].[June] ,
[Dim Date].[English Month Name].[July] ,
[Dim Date].[English Month Name].[August] ,
[Dim Date].[English Month Name].[September] ,
[Dim Date].[English Month Name].[October] ,
[Dim Date].[English Month Name].[November] ,
[Dim Date].[English Month Name].[December] ,
[Dim Date].[English Month Name].[YTD]}) ON ROWS ,
{([MEASURES].[VALOR MOEDA TRANSACAO])} ON COLUMNS
FROM ( SELECT ( [DimConta].[Conta Nivel1].&[0] :
[DimConta].[Conta Nivel1].&[70000] ) ON COLUMNS
FROM [CUBO BALANCO] )
WHERE {[Dim Date].[Calendar Year].&[2011]}
Eduardo Gomes - http://www.h1solucoes.com.br - Twitter: @edugp_sp -
24. ledna 2012 14:50
Opa ,
Nao me retorna nada no resultado.
ZipDrv -
24. ledna 2012 16:07
Os membros do atributo [DimConta].[Conta Nivel1] são numéricos?
Abs;
Eduardo Gomes - http://www.h1solucoes.com.br - Twitter: @edugp_sp -
26. ledna 2012 11:58
Eduardo,
Uma curiosidade, existe o operador Not In em MDX?
Sinceramente eu não me lembro deste operador em MDX mas sim o Not!
Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com] -
26. ledna 2012 12:05
Sim Junior, corretíssimo!
Não existe Not in para critério em mdx.
Para negar um determinado membro no critério mdx é utilizado o menos (-) como no exemplo que citei acima:
select non empty {[medida].[medida1] } on columns from ( select ( -{[dimensao].[atributo].&[membro_a_ser_negado] } ) on coluns from [cubo] )
Abs.
Eduardo Gomes - http://www.h1solucoes.com.br - Twitter: @edugp_sp -
26. ledna 2012 12:10
Eduardo,
Perfeito entendi, eu achei bastante estranho.
Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]