Запрос рейтинга MDX, возвращающий неожиданные результаты - PullRequest
0 голосов
/ 20 октября 2010

Я написал этот довольно простой запрос MDX для получения ранга по количеству продаж каждого пола :

WITH MEMBER [Measures].[rank] AS RANK(
      [Gender].CurrentMember,
      Order(
         [Gender].Members,
         [Measures].[salescount],
         BDESC
      ),
      [Measures].[salescount]
   )
SELECT [Gender].Members ON COLUMNS,
[Measures].[rank] ON ROWS
FROM [SalesAnalysis]

Проблема в том, что результат неверныйЯ знаю, что M имеет больше продаж, чем F:

Axis #0:
  {}
Axis #1:
  {[Measures].[rank]}
Axis #2:
  {[Gender].[All Genders]}
  {[Gender].[F]}
  {[Gender].[M]}
Row #0: 1
Row #1: 2
Row #2: 3

Если я использую «Страна» вместо «Пол», та же проблема: ранг дается в соответствии с в алфавитном порядке , а не на основе подсчета продаж. (то есть: все страны перечислены в алфавитном порядке, с рангом 1,2,3,4, ...)

Как исправить запрос, чтобы правильно показывать ранг продаж каждого пола

1 Ответ

0 голосов
/ 20 октября 2010

ОК, я нашел решение:

WITH MEMBER [Measures].[rank] AS RANK(
      [Reseller].CurrentMember,
      Order(
         [Reseller].Members,
         [Measures].[salescount],
         BDESC
      ),
      [Measures].[salescount]
   )
SELECT Order(
         [Reseller].Members,
         [Measures].[salescount],
         BDESC
      ).Item([theShopWhoseRankIWant]) ON COLUMNS,
[Measures].[rank] ON ROWS
FROM [SalesAnalysis]

Извините за шум, надеюсь, это может кому-то помочь: -)

...