首页 > 解决方案 > 带过滤器的 MDX 计算成员

问题描述

对 MDX 很陌生,所以这可能是一个新手问题。但是无法“翻译”任何解决方案的答案!

我有一个衡量我的行数的度量,称为 [Measures].[Fact Count]

我还有一个名为 [Document] 的维度,其中有一个名为 [Is Completed] 的字段。

[Document].[Is Completed] 可以具有以下两个值之一:[Yes] 或 [No]。

[文档] 维度确实有几个其他字段,例如 [文档类型]

我想问一个问题,比如“我的不同文档类型有多大比例已经完成”。

我尝试过像这样制作 [Completed Count]:

([Measures].[Fact Count],
[Document].[Is Completed].&[Yes])

然后像这样使用它:

[Measures].[Completed Count]/[Measures].[Fact Count]*100

但是(当然)[Completed Count] 然后会获取我所有已完成的文档,而不仅仅是那些 [Document Type]

希望这对某人有意义!

标签: ssasmdxcalculated-fieldcube-script

解决方案


啊,有办法了!

由于我的 Dimension 包含“是”或“否”值,我可以将它们转换为 1 和 0,并将它们作为 [Measures].[Is Completed Sum] 添加到我的 [Measures] 中。正如名字所说:我将对这些值求和。

然后计算很简单:

[Measures].[Is Completed Sum]/
[Measures].[Fact Count]*100

或者如果我确保不除以 0:

iif(
[Measures].[Fact Count] = 0,
null,
[Measures].[Is Completed Sum]/
[Measures].[Fact Count]*100
)

我仍然会在维度中保留我的是/否,因为我可以在需要时将它们用作过滤器。

whytheq,非常感谢您的所有投入!它非常有价值,让我的大脑朝着正确的方向旋转 :-)


推荐阅读