带过滤器的MDX计算成员

时间:2018-05-17 11:40:43

标签: ssas mdx calculated-field cube-script

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

我有一个措施来计算我的行数[测量]。[事实计数]

我还有一个名为[Document]的Dimension,它有一个名为[Is Completed]的字段。

[文件]。[完成]可以有两个值之一:[是]或[否]。

[Document]维度有几个其他字段,如[Document Type]

我想问一个问题,例如“我的不同文件类型的百分比已经完成了多少”。

我试过像这样制作[完成计数]:

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

然后像:

一样使用它
[Measures].[Completed Count]/[Measures].[Fact Count]*100

但是(当然)[完成计数]然后取得我所有已完成的文件,而不仅仅是那些文件。 [文件类型]

希望这对某人有意义!

3 个答案:

答案 0 :(得分:2)

啊,得到了解决方案!

因为我的维度包含"是"或"否"值,我可以将它们转换为1和0,并将它们作为[Measures]添加到我的[Measures]。[Is Completed Sum]。正如名称所说:我将对这些值进行求和。

然后计算是直截了当的:

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

或者我确保不要除以0:

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

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

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

答案 1 :(得分:1)

也许另一方需要更明确?

(
 ([Measures].[Fact Count],
  [Document].[Is Completed].&[Yes])
/
 ([Measures].[Fact Count],
  [Document].[Is Completed].[All])
)
*100

如果你有一个Is Completed的属性层次结构,请尝试使用它 - 可能就像这样......

(
 ([Measures].[Fact Count],
  [Is Completed].[Is Completed].[Is Completed].&[Yes])
/
 ([Measures].[Fact Count],
  [Is Completed].[Is Completed].[All])
)
*100

或者

(
 ([Measures].[Fact Count],
  [Is Completed].[Is Completed].&[Yes])
/
 ([Measures].[Fact Count],
  [Is Completed].[All])
)
*100

如果您将度量更改为以下并将Yes |没有ON COLUMNS你开始得到正确的结果吗?

(
 ([Measures].[Fact Count])
/
 ([Measures].[Fact Count],
  [Document].[Is Completed].[All])
)
*100

答案 2 :(得分:0)

也许SCOPE。 (偷了为什么theq的代码,我认为他得到了正确的答案)

SCOPE ([Document].[Is Completed].&[Yes])
THIS = (
 ([Measures].[Fact Count],
  [Document].[Is Completed].&[Yes])
/
 ([Measures].[Fact Count],
  [Document].[Is Completed].[All])
)
*100
END SCOPE

关于

  

因为我的维度包含"是"或"否"值,我可以将它们转换为1和0   您可以改进模型并向Dimension添加新的Column Value。

实际上只用< 1得到1和0构件> VALUE