Pergunta 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]