Ssas 带筛选器的MDX计算成员
对于MDX来说,这是一个非常新的问题。但却无法“翻译”任何解决方案的答案 我有一个计算行数的度量,称为[Measures].[Fact Count] 我还有一个名为[Document]的维度,它有一个名为[Is Completed]的字段 [Document].[Is Completed]可以有两个值之一:[Yes]或[No] [Document]维度确实有几个其他字段,如[Document Type] 我想问一个问题,比如“我的不同文档类型中有多大百分比已经完成” 我尝试过这样做[完成计数]:Ssas 带筛选器的MDX计算成员,ssas,mdx,calculated-field,cube-script,Ssas,Mdx,Calculated Field,Cube Script,对于MDX来说,这是一个非常新的问题。但却无法“翻译”任何解决方案的答案 我有一个计算行数的度量,称为[Measures].[Fact Count] 我还有一个名为[Document]的维度,它有一个名为[Is Completed]的字段 [Document].[Is Completed]可以有两个值之一:[Yes]或[No] [Document]维度确实有几个其他字段,如[Document Type] 我想问一个问题,比如“我的不同文档类型中有多大百分比已经完成” 我尝试过这样做[完成计数]:
([Measures].[Fact Count],
[Document].[Is Completed].&[Yes])
然后像这样使用它:
[Measures].[Completed Count]/[Measures].[Fact Count]*100
但是(当然,[Completed Count]会获取我所有已完成的文档,而不仅仅是每个文档,例如[Document Type]
希望这对某人有意义 也许是另一方需要更加明确
(
([Measures].[Fact Count],
[Document].[Is Completed].&[Yes])
/
([Measures].[Fact Count],
[Document].[Is Completed].[All])
)
*100
如果您有一个已完成的属性层次结构,请尝试使用它-可能像这样
(
([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 | No,您是否开始得到正确的结果
(
([Measures].[Fact Count])
/
([Measures].[Fact Count],
[Document].[Is Completed].[All])
)
*100
啊,找到解决办法了
由于我的维度包含“是”或“否”值,我可以将它们转换为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,非常感谢您的所有意见!它非常有价值,让我的大脑朝着正确的方向旋转:-)也许是它。
(偷了whytheq的密码,我想他得到了正确的答案)
关于
因为我的维度包含“是”或“否”值,所以我可以将它们转换为1和0
您可以改进模型并向维度添加新的列值
用
SCOPE ([Document].[Is Completed].&[Yes])
THIS = (
([Measures].[Fact Count],
[Document].[Is Completed].&[Yes])
/
([Measures].[Fact Count],
[Document].[Is Completed].[All])
)
*100
END SCOPE