2013-07-11 30 views
1
所有我使用SQL Management Studio中的這個查詢的

第一(不Excel 2007中,似乎有問題):MDX CurrentMember與2008年SSAS不能正常工作,通過MSDN說

WITH 
    SET [Project period dates] AS 
    { 
     StrToMember("[Time].[Date].&[" + [Project].[ParentProject].CURRENTMEMBER.PROPERTIES("Project Start Iso") + "]"): 
     StrToMember("[Time].[Date].&[" + [Project].[ParentProject].CURRENTMEMBER.PROPERTIES("Project End Iso") + "]") 
    } 
    MEMBER [Measures].[Test] AS ([Project period dates].COUNT) 
SELECT 
{ 
    [Measures].[Test] 
} 
on 0, 
    NONEMPTY ([Project].[ParentProject].MEMBERS) 
    DIMENSION PROPERTIES [Project].[ParentProject].[Project Duration], [Project].[ParentProject].[Project Start Iso], [Project].[ParentProject].[Project End Iso] 
on 1 
FROM 
    [MyCube] 
WHERE 
(
    [Orgunit].[Orgunit].&[448] 
) 

這個查詢提供了一個具有三個屬性的項目列表以及基於我的計算集合計算的成員。屬性顯示正確的值,但計算出來的成員總是顯示相同的結果:它應該計算的第一個項目的結果。

我真的不明白爲什麼,因爲MSDN說:

目前的成員在層次結構中的查詢軸上使用的變化。 因此,同一個 尺寸上其他層次結構上當前未在軸上使用的成員也可以更改;此行爲 被稱爲「自動存在」。

他們提供計算成員的例子,但我認爲這也應該與計算集合一起工作,我已經讀過基於查詢的計算集合本質上是動態的。也許有人可以告訴我,如果我明白這個錯誤或我的問題在這裏。

回答

1

命名集合只在查詢中計算一次。這就是爲什麼你的計算成員總是返回相同的價值。

你只需要刪除您查詢命名集:

MEMBER [Measures].[Test] AS { 
    StrToMember("[Time].[Date].&[" + [Project].[ParentProject].CURRENTMEMBER.PROPERTIES("Project Start Iso") + "]"): 
    StrToMember("[Time].[Date].&[" + [Project].[ParentProject].CURRENTMEMBER.PROPERTIES("Project End Iso") + "]") 
}.COUNT 
+0

這工作吧。但它仍然不能解釋爲什麼文檔有不同的說法。希望微軟很快就會改變他們文檔中的信息混亂。 – Nairi