MDX RANK计算的度量每行为1

时间:2014-09-30 20:21:51

标签: mdx

我尝试在MDX查询中创建计算度量,该度量获取按度量排序的维度的等级。问题是,对于每一行,我获得的是1或者,如果我更改排序顺序,则为维度的计数。

这是我的衡量标准

MEMBER [Measures].[Approved wk to wk Rank] AS RANK (
  [FRR Group Matrix].[Group Name].CurrentMember,
  ORDER(
    [FRR Group Matrix].[Group Name].[Group Name].ALLMEMBERS, [Measures].[Approved wk to wk %], BDESC
  ),
  [Measures].[Approved wk to wk %]
) 

我的指标在我的列中,而我的维度在行中。这是我定义行的地方,我相信我遇到了问题:

{ ([FRR Group Matrix].[Group Name].[Group Name].ALLMEMBERS 
   * [FRR Group Matrix].[FRRCode].[FRRCode].ALLMEMBERS ) } ON ROWS

如果我改为以下,我会得到一个好的排名,但我仍然希望保留两个列

{ [FRR Group Matrix].[Group Name].[Group Name].ALLMEMBERS } ON ROWS

那么我怎样才能让我的等级与两个元组一起工作?

1 个答案:

答案 0 :(得分:1)

将整个元组放在RANKORDER中。 NONEMPTY可能不是您的特定问题所必需的,但它会排除您排名中的空白,并可能加快执行时间。

SET [X] AS
  ORDER(
      NONEMPTY(
         [FRR Group Matrix].[Group Name].[Group Name]
         * 
         [FRR Group Matrix].[FRRCode].[FRRCode], 
         [Measures].[Approved wk to wk %]
      ), 
      [Measures].[Approved wk to wk %], 
      BDESC
    )
  MEMBER [Measures].[Approved wk to wk Rank] AS 
    RANK (
      (
       [FRR Group Matrix].[Group Name].CurrentMember,
       [FRR Group Matrix].[FRRCode].CurrentMember
      ),
    [X], 
    [Measures].[Approved wk to wk %]
  )