MDX排名请求返回意外结果

时间:2010-10-20 02:22:08

标签: mdx business-intelligence pentaho

我写了这个相当简单的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,......)

如何修复请求以正确显示每个性别的salescount排名?

1 个答案:

答案 0 :(得分:0)

好的,我找到了解决方案:

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]

对不起噪音,我希望这可以帮助某人: - )