2012-10-25 38 views
0

我正在使用SQL Server Analysis Services。對計算成員MDX CurrentMember評估 - 奇怪結果

我有一個計算的成員,就目前來看,只要做到這一點:

[MyDimension].[MyOnlyHierarchy].CurrentMember.Properties("MEMBER_UNIQUE_NAME") 

以前,我剛寫好[MyDimension].[MyOnlyHierarchy].CurrentMember.UniqueName。無論如何它們應該是一樣的。

現在,我使用SQL事件探查器來查看我的應用程序問題的查詢。對於[MyDimension].[MyOnlyHierarchy]一個簡單的計算的成員,只是總結不同的成員,說有ID的401和402,我得到這樣的結果:

[MyDimension].[MyOnlyHierarchy].&[401][MyDimension].[MyOnlyHierarchy].&[402] 

換句話說,這是因爲如果AS評估潛在的成員並連接結果,而不是給我的唯一名稱計算成員......

真是個奇怪的東西對我來說,當我把原來的查詢,並在前面加上以下內容:

WITH MEMBER [Measures].[GiveMeCalculatedMemberUniqueName] 
AS 
(
[MyDimension].[MyOnlyHierarchy].CurrentMember.Properties("MEMBER_UNIQUE_NAME") 
) 

...休息查詢

我使用這第二項措施得到了正確的結果!上下文是一樣的(對我來說至少)。一切都是一樣的...然而,項目文件中聲明的度量與此內聯計算成員給出的結果不同。

這是怎麼回事?請注意,我已經重新部署了10000次,並且檢查了服務器上所有立方體中的實際定義。這對我來說沒有意義。

回答

1

計算基於解決順序進行評估。可能是因爲你把它降下來了,解決方法本應該如何工作,它會給你正確的結果。我在解決訂單here上有一個小博客,但在互聯網上有更多的文章。

HTH

+0

是的,這似乎是這種情況。但結果非常奇怪,我一開始就弄不明白。將閱讀您的博客條目。 – UmaN

0

有趣...我一直坐着這個約2-3小時,探索每一個想法;然後,在我發佈這個問題後,我決定嘗試一件事:

將調用成員定義移動到項目中計算成員腳本文件的底部。

現在給出正確的結果。