[英]MDX calculated Member not allowed multiple hierarchy tuple
我使用sql表在SSAS多維數據集中的值的每個維度上生成過濾器。
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.