使用MDX,如何返回特定度量的MAX成员的.Name?

时间:2014-07-03 18:33:06

标签: mdx

这是我第一次发帖,我认为这是一个难题。

使用MDX,我希望根据我在找到MAX的度量中返回维度特定成员的.Name

所以如果我创建一个网格

Dimension X = Jobs
Dimension Y = Time
Dimension z = cause (not in grid)
Measure = Stress (1-10)

              July 1 | July 2 | July 3 | July 4
**Painter**        1 |      3 | **5**  |      2

你可以看到7月3日有MAX应力值现在我要做的是返回维度z的成员名称而不切片(它与作业维度相关联,所以如果我切片就认为它是有效的)

所以[Dimension z]。[原因] .CurrentMember.Name 会给我全部会员的名字,但我需要测量压力的MAX与此相关,并给我与该值相关的原因的成员名称。

我希望这有道理,甚至有可能吗?

詹姆斯

1 个答案:

答案 0 :(得分:0)

的内容
WITH Member Measures.[Name of Max Stress] AS
     TopCount([DimZ].[AttribZ].[AttribZ].Members, 1, Measures.[Stress]).Item(0).Item(0).Name
SELECT [DimZ].[HierZ].[Month].Members
       on columns,
       { Measures.Stress, Measures.[Name of Max Stress] }
       on rows
  FROM [cube]

应该给你想要的东西。

它首先使用TopCount function,对按[DimZ].[AttribZ].[AttribZ].Members下降的Measures.[Stress]集进行排序。当TopCount返回一个集合,但我们接下来需要一个成员时,我们使用Item function,其中第一个调用返回集合的第一个(也是唯一的)元组,the second call返回来自元组的第一个(也是唯一的)成员。然后我们有一个成员,最后可以应用Name function