2017-07-26 10 views
0

MDXで全く新しいです。サブストリング "SBP1"を含むすべてのレコードをフィルタリングする必要があります。MDX Builder - INSTR関数を使用したフィルタリング

SELECT 
    NON EMPTY 
    {[Measures].[Value]} ON COLUMNS 
,NON EMPTY 
    { 
     [Article].[Article Alternative ID CPG].[Article Alternative ID CPG].ALLMEMBERS* 
     [Article].[Market].[Market].ALLMEMBERS* 
     [Article].[Brand].[Brand].ALLMEMBERS* 
     [Article].[Product].[Product].ALLMEMBERS 
    } 
    DIMENSION PROPERTIES 
    MEMBER_CAPTION 
    ,MEMBER_UNIQUE_NAME 
    ON ROWS 
FROM 
(
    SELECT 
    { 
     [Article].[Article Alternative ID CPG].[SBP1 0] 
    ,[Article].[Article Alternative ID CPG].[SBP1 1] 
    ,[Article].[Article Alternative ID CPG].[SBP1 W] 
    } ON COLUMNS 
    FROM 
    (
    SELECT 
     {[Measure Data Type].[Data Type].[Actuals]} ON COLUMNS 
    FROM 
    (
     SELECT 
     {[Org Sales Area].[Sales Organization Key].[DEB1]} ON COLUMNS 
     FROM 
     (
     SELECT 
      {[Org Sales Area].[Distribution Channel].&[DO]} ON COLUMNS 
     FROM 
     (
      SELECT 
      {[Org Business Unit].[Business Unit].[U-K]} ON COLUMNS 
      FROM 
      (
      SELECT 
       {[Measure Item].[Measure Item].&[KF00310]} ON COLUMNS 
      FROM 
      (
       SELECT 
       {[Date of Posting].[Posting Y Q M D].[Posting Year].&[2017]} ON COLUMNS 
       FROM [COLOR LEAN CPG] 
      ) 
     ) 
     ) 
    ) 
    ) 
) 
) 
WHERE 
    (
    [Date of Posting].[Posting Y Q M D].[Posting Year].&[2017] 
    ,[Measure Item].[Measure Item].&[KF00310] 
    ,[Org Business Unit].[Business Unit].[U-K] 
    ,[Org Sales Area].[Distribution Channel].&[DO] 
    ,[Org Sales Area].[Sales Organization Key].[DEB1] 
    ,[Measure Data Type].[Data Type].[Actuals] 
) 
CELL PROPERTIES 
    VALUE 
,BACK_COLOR 
,FORE_COLOR 
,FORMATTED_VALUE 
,FORMAT_STRING 
,FONT_NAME 
,FONT_SIZE 
,FONT_FLAG; 

私はInStr関数を持つことが、より効率的な行うことができます方法:コードを作業する {[Article].[Article Alternative ID CPG].[SBP1 0],[Article].[Article Alternative ID CPG].[SBP1 1],[Article].[Article Alternative ID CPG].[SBP1 W]}

MDX builder screenshot

:私はこのような個別の各レコードを入力するとき、それは私の作品? 私はこれを試みたが、動作しません:

SELECT 
    [Measures].[Value] ON COLUMNS 
,Filter 
    (
    [Article].[Article Alternative ID CPG].[Article Alternative ID CPG].ALLMEMBERS 
    , 
     Instr 
     (
     [Article].[Article Alternative ID CPG].[Article Alternative ID CPG].CurrentMember.Name 
     ,'SBP1' 
    ) 
    > 0 
) ON ROWS 
FROM [COLOR LEAN CPG]; 

私のMDXのstatamentに何が間違っているのですか? MDX with my SELECT screenshot 私はCURRENTMEMBER関数を適用するときに、少し遠くナビゲートしているかもしれないと思うあなた

答えて

0

ありがとうございます。これを試してみてください:

SELECT 
    [Measures].[Value] ON COLUMNS 
,Filter 
    (
    [Article].[Article Alternative ID CPG].[Article Alternative ID CPG].ALLMEMBERS 
    , 
     Instr 
     (
     [Article].[Article Alternative ID CPG].CurrentMember.Name //<<[Article].[Article Alternative ID CPG].[Article Alternative ID CPG].CurrentMember.Name 
     ,'SBP1' 
    ) 
    > 0 
) ON ROWS 
FROM [COLOR LEAN CPG]; 

うまくいけば、名があなたのために動作しますが、私は通常MEMBERCAPTIONのために行く:

SELECT 
    [Measures].[Value] ON COLUMNS 
,Filter 
    (
    [Article].[Article Alternative ID CPG].[Article Alternative ID CPG].ALLMEMBERS 
    , 
     Instr 
     (
     [Article].[Article Alternative ID CPG].CurrentMember.MEMBERCAPTION 
     ,'SBP1' 
    ) 
    > 0 
) ON ROWS 
FROM [COLOR LEAN CPG]; 
+0

返信ありがとうございますが、依然として間違っているようです(私はMEMBERCAPTIONとCurrentMember.Nameを試しました):SELECT [Measures]。[値] ON COLUMNS、 フィルタ[Article]。[Article Alternative ID CPG] [Article Alternative ID CPG] .ALLMEMBERS、 Instr([Article]。[Article Alternative ID CPG] .CurrentMember.MEMBERCAPTION、 'SBP1')> 0)ON ROWS [COLOR LEAN CPG]から; – kabarto

+0

"返事ありがとうございますが、それでもなお間違っているようです" ....私の答えが間違っていた場合、あなたの解決方法はどうなっていますか?[Article]。[Article Alternative ID CPG]。CurrentMember?元の実装でやってみてください! (これは決してうまくいかない[Article]。[Article Alternative ID CPG]。[Article Alternative ID CPG] .CurrentMember') – whytheq

0

私は、有効なMDXステートメントを見つけました: Filter([Article].[Main Article Alternative ID CPG].[Main Article Alternative ID CPG].ALLMEMBERS,Instr([Article].[Main Article Alternative ID CPG].currentmember.Properties('Member_Caption'), 'SBP1') > 0)

しかし、この解決策、私は知りませんでした純粋なGUI MDX BUILDERにそれを挿入する。

+0

これは私が「CURRENTMEMBER関数を適用すると少し遠くにナビゲートしたと思う私の答え...それはあなたのスクリプトの主な問題でした – whytheq

+0

これはどういう意味ですか? 'しかし、このソリューションは純粋なGUIのMDX BUILDERに変換することを知らなかった。 – whytheq

関連する問題