簡體   English   中英

MDX計算的成員不允許使用多個層次結構元組

[英]MDX calculated Member not allowed multiple hierarchy tuple

我使用sql表在SSAS多維數據集中的值的每個維度上生成過濾器。

SQL表

MDX查詢基於下面的查詢列,計算得出的成員是:

   AGGREGATE
    (
      IIF(Query= "" or ISEMPTY(Query),
           [Code].[_KeyQuery].[ALL],
           StrToTuple('('+ Query+')')
           ),[Measures].[Value]
    )

我必須在Excel中使用數據透視表。 它運行完美,該值已在每個維成員上正確過濾。 如果我使用這樣的查詢,就可以了。

[Level].[LevelCode].&[A],[Status].[StatusCode].&[ST]

但是現在我需要添加對多個維度成員進行過濾的可能性。 例如,使用查詢:

[Level].[LevelCode].&[A],[Level].[LevelCode].&[X],[Status].[StatusCode].&[ST]

它不起作用,我嘗試像這樣更改查詢:

{[Level].[LevelCode].&[A],[Level].[LevelCode].&[X]},[Status].[StatusCode].&[ST]

但是StrToTuple()函數會導致錯誤。 我不知道如何為同一個維度層次結構過濾多個值。

如果它將始終是一個元組,則無需使用AGGREGATE,只需一個元組應返回值:

  IIF(
    Query= "" OR ISEMPTY(Query),
    (
      [Code].[_KeyQuery].[ALL]
     ,[Measures].[Value]
    )
   ,StrToTuple('('+ Query +',[Measures].[Value])')
  )

或此版本:

   StrToTuple(
      '('
      + IIF(
          Query= "" OR ISEMPTY(Query)
         ,[Code].[_KeyQuery].[ALL]
         ,Query 
       )
     +',[Measures].[Value])'
    )

元組和集合之間可能的決策方法

向您的控制表“ TupleOrSet”添加一列,其值為“ T”或“ S”。 然后,您可以將代碼修改為以下內容:

  IIF(
    Query= "" OR ISEMPTY(Query),
    (
      [Code].[_KeyQuery].[ALL]
     ,[Measures].[Value]
    )
   ,IIF(
       TupleOrSet = "T"
      ,StrToTuple('('+ Query +',[Measures].[Value])')
      ,AGGREGATE( StrToSet('{'+ Query +'}'), [Measures].[Value])
    )
  )

注意

元組是多維數據集空間中的一個確定點,因此不能由同一層次結構中的兩個成員組成-這將創建不確定的坐標

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM