MDX - отличный счет - PullRequest
       14

MDX - отличный счет

1 голос
/ 15 декабря 2011

Я читал эту статью:

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)

Есть идеи, что я делаю не так?

Спасибо!

1 Ответ

3 голосов
/ 16 декабря 2011

Причина, по которой первый запрос возвращает «1 больше, чем должно быть», заключается в том, что набор кортежей [Submission].[PK Submission].Members также включает в себя элемент All.

Если вы ссылаетесь на уровень [PK Submission] вместо всех элементовиерархии [PK Submission], он не включает члена All.

Итак, следующее возвращает то, что вы ожидаете:

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