代码之家  ›  专栏  ›  技术社区  ›  Nicolas Raoul

MDX列组请求返回意外结果

  •  0
  • Nicolas Raoul  · 技术社区  · 14 年前

    我写了这个相当简单的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 回复  |  直到 14 年前
        1
  •  0
  •   Nicolas Raoul    14 年前

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

    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]
    

    对不起,我希望这能帮上忙。