2017-06-01 73 views
0

所以我有這個維度有一個衣衫襤褸的層次結構。該層次結構很好導航,但需要進行搜索(Excel是前端,因此您必須在所有12級左右手動搜索)。基於同一維度的第二個屬性的層次結構部分

我們爲層次結構的所有成員創建了一個單獨的「搜索」屬性進行搜索 - 但是,在此平面列表中,葉子將包含正確的數據,但中間節點當然不會捲起來(缺乏的分層信息)

我的想法是在平面列表中添加一個公式,在層次結構中查找其等價成員並從中獲得它的值。 這裏是我 - 這兩種方法不很遺憾工作:

With 

------ APPROACH 1: DESCENDANTS 
Member [m1] As 
Sum(
Descendants(
    Filter(
     [Dimension].[Hierarchy].Members 
    , [Dimension].[Hierarchy].Properties("Key") = 
     [Dimension].[Flat List].CurrentMember.Properties("Key") 
),, LEAVES), ([Measure].[MeasureHierarchy].CurrentMember, [Measures].[Amount])) 


------- APPROACH 2: StrToMember + CHILDREN 
Member [m2] As 
Sum(
    StrToMember("[Dimension].[Hierarchy].&["+ 
    [Dimension].[Flat List].CurrentMember.Properties("Key")+ 
    "]").Children, 
    ([Measure].[MeasureHierarchy].CurrentMember, [Measures].[Amount]) 
) 

Select 

{ [m1], [m2] } 
On 0, 

[Dimension].[Flat List].&[838] 
    dimension properties member_key 
On 1 

From [Cube] 
Where [Measure].[MeasureHierarchy].[SomeMeasure] 

雙方將始終返回null - 如果我直接查詢層次,它的工作原理 - 只是沒有,如果我使用平面列表 任何想法?

回答

0

想通了自己 - 有靈感的火花今晚:-D

答案很簡單,只要:

with member 
[m1] as 
(
    StrToMember("[Dimension].[Hierarchy].&["+ 
    [Dimension].[Flat List].CurrentMember.Properties("Key")+ 
    "]") 
    , [Dimension].[Flat List].[All] 
) 

...

也許這將幫助別人太

相關問題