2011-12-15 125 views
1

我這篇文章如下:MDX重複計數

http://msdn.microsoft.com/en-us/library/aa902637%28v=sql.80%29.aspx

和我對重複計數查詢看起來是這樣的:

Count(CrossJoin({[Measures].[Submission Count]}, [Submission].[PK Submission].Members), ExcludeEmpty) 

它總是返回1比它應該(例如它返回27而不是26)。

在同一篇文章中有這樣的查詢(這是假設來解決這個問題):

Count(CrossJoin({[Sales]}, 
Descendants([Customers].CurrentMember, [Customer Names])), 
ExcludeEmpty) 

但我無法得到它的工作。我已經試過這兩個,但第二個總是返回1或0,而第一個不工作(錯誤:我有明確定義的水平):

Count(CrossJoin({[Measures].[Submission Count]}, 
    Descendants([Submission].CurrentMember, [Submission].[PK Submission])), 
    ExcludeEmpty) 


Count(CrossJoin({[Measures].[Submission Count]}, 
    Descendants([Submission].[PK Submission].CurrentMember, [Submission].[PK Submission])), 
    ExcludeEmpty) 

任何想法我做錯了什麼?

謝謝!

回答

3

第一查詢返回的原因「1比它應該」是因爲[Submission].[PK Submission].Members元組集還包括了所有成員。

如果您參考[PK Submission]級別而不是[PK Submission]層次結構的所有成員,它不包括全部成員。

因此,下面的回報你期待什麼:

Count(CrossJoin({ [Measures].[Submission Count] } 
       , { [Submission].[PK Submission].[PK Submission] }) 
    , ExcludeEmpty)