2010-03-16 77 views
1

問候,MDX:如何聚合層級成員具有相同名稱的

我新的MDX,和我無法理解如何與具有相同的名稱成員等級層次進行聚合。此查詢是特定於Microsoft Analysis Services 2000多維數據集。

我已經被定義爲水平給定的層次結構維度如下:

[Segment].[Flow].[Segment Week] 

[Segment Week]水平,我有以下成員:

[Week- 1] 
[Week- 2] 
[Week- 3] 
    ... 
[Week- 1] 
[Week- 2] 
[Week- 3] 

成員具有相同的名稱,但在父級別與不同的[Flow]對齊。因此,第一次出現[Week- 1]成員與[Flow].[A]對齊,而第二次出現[Week- 1][Flow].[B]對齊。我想要做的是彙總[Segment Week]級別中具有相同名稱的所有成員。用SQL術語來說,我想GROUP BY [Segment Week]級別的成員名稱。我不確定如何做到這一點。謝謝。

戴夫

回答

0

我認爲你的立方體設計是有缺陷的。

設計維度的最佳方式是其所有成員都是唯一的,並且聚合路徑遵循維度的自然層次結構。

您可以刪除從段一週的水平,並創建另一個維度(如果我沒記錯,你不能有一個以上的層次結構,AS 2000),說周,具有以下結構:

[Week].[Week- 1] 
[Week].[Week- 2] 
[Week].[Week- 3] 
etc 

然後你只需要按SEGMENT和Week來篩選。 例如,爲了獲得流動A的總Week1你會怎麼做:

SELECT {[Measures].members} on 0 
FROM MYCUBE 
WHERE ([Week].[Week- 1],[Segment].[A]) 
+0

我您的看法是,立方體的設計是有缺陷的同意。不幸的是,對立方體的設計更改是不可行的。 – 2010-03-17 22:05:19

0

你能使用成員的鑰匙嗎?

[Week].&[1] ([Week].[Week - 1] (flow1)) 
[Week].&[5] ([Week].[Week - 1] (flow2)) 

作爲參考,在2008年的Adventure Works DW Standard Ed'Cube中,Customer Aaron A. Allen的關鍵是[Customer]。[Customer]。 & [20075]

UPDATE: 不好意思,剛纔重讀你的問題,它看起來像你不是想具體星期去流,要aggreagate他們。怎麼樣一個case語句是這樣的:

CASE 
    WHEN [Week].CURRENTMEMBER.NAME='Week - 1' 
    THEN [Week].CURRENTMEMBER 
    ELSE 0 
END 

不是很通用的或柔性的,但也可能是一個開始......