MDX 表达式:计算成员

Posted

技术标签:

【中文标题】MDX 表达式:计算成员【英文标题】:MDX Expression : Calculated Member 【发布时间】:2014-08-27 18:50:37 【问题描述】:

我正在尝试在 Microsoft Analysis Services 多维数据集上创建一个计算成员

有一个现有的维度[Projects][Project Number - Name],其成员沿着“12345 - 项目 X”这一行。我只需要提取项目编号(“12345”)。

我最初以为它会像LEFT(Projects].[Project Number - Name],5) 一样简单,但这会产生null 响应。

即使我只是像[Projects].[Project Number - Name] 一样重复维度,我也会得到null

我尝试了[Projects].[Project Number - Name].Value, [Projects].[Project Number - Name].Members 和许多其他想法,但我(正如您可能看到的)在黑暗中拍摄。

我主要是想在 Tableau 中实现这个功能(需要一个 MDX 表达式,而不是完整的查询),但我也尝试过 MS Excel Power Pivot 中的计算成员功能,它产生的结果完全相同回答 (null) - 这表明我的 MDX 有问题。

【问题讨论】:

看看这是否有帮助:social.msdn.microsoft.com/Forums/sqlserver/en-US/… 感谢这确实让我朝着正确的方向前进。我现在有 `LEFT([Projects].[Project Number - Name].CURRENTMEMBER.NAME,5) 工作,但前提是我还包括工作表其他地方包含的原始 [Projects].[Project Number - Name] 维度。如果我将原始维度取出,计算的成员将变为空...... ??? 【参考方案1】:

我会尝试:

LEFT( [Projects].[Project Number - Name].currentMember.name, 5 )

否则,[Projects].[Project Number - Name] 引用一个成员,然后将其转换为元组并进行评估。所以你的表达式实际上是在处理这个元组评估的结果,而不是成员本身的名称。

【讨论】:

这将返回维度名称(“项目编号 - 名称”)而不是成员值(“12345 项目 X”)....? 抱歉,我忘记了 .currentMember 通话 - 现在可以了吗?

以上是关于MDX 表达式:计算成员的主要内容,如果未能解决你的问题,请参考以下文章

MDX 查询 - 如何使用成员属性?

MDX:按度量的表值过滤成员集

SSAS 多维数据集计算的成员无穷大总计值

MDX

使用计算成员传递参数 - MDX

MDX 计算共同成员 - 存在替代