[英]MDX Calculated member with filter
对MDX来说还很陌生,所以这可能是一个菜鸟问题。 但是还无法“翻译”解决方案的任何答案!
我有一个度量,该度量对我的行数进行计数,称为[度量]。[事实计数]
我还有一个名为[Document]的维度,其中有一个名为[Is Completed]的字段。
[文档]。[已完成]可以具有两个值之一:[是]或[否]。
[Document]维度确实还有其他几个字段,例如[Document Type]
我想问一个问题,例如“我的不同文档类型已经完成了多少百分比”。
我试过像这样[完成计数]:
([Measures].[Fact Count],
[Document].[Is Completed].&[Yes])
然后像这样使用它:
[Measures].[Completed Count]/[Measures].[Fact Count]*100
但是(当然)然后[完成计数]会取走我所有已完成的文档,而不是仅取每个[Document Type]的文档
希望这对某人有意义!
啊,找到解决方案了!
由于我的维度包含“是”或“否”值,因此我可以将它们分别转换为1和0,并将它们作为[度量]添加到我的[度量]。[已完成的总和]。 顾名思义,我将求和。
那么计算很简单:
[Measures].[Is Completed Sum]/
[Measures].[Fact Count]*100
或者如果我确保不除以0:
iif(
[Measures].[Fact Count] = 0,
null,
[Measures].[Is Completed Sum]/
[Measures].[Fact Count]*100
)
我仍然会在维度中保留“是/否”,因为在需要时可以将它们用作过滤器。
whytheq,非常感谢您的所有意见! 这非常有价值,并使我的大脑朝着正确的方向旋转:-)
也许是另一端需要更加明确?
(
([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
如果将度量值更改为以下值,然后将是| 否,您不会开始获得正确的结果吗?
(
([Measures].[Fact Count])
/
([Measures].[Fact Count],
[Document].[Is Completed].[All])
)
*100
也许范围 。 (从whytheq那里窃取了代码,我认为他得到了正确的答案)
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。您可以改进模型并为维度添加新的列值。
并实际上仅通过<Member>获得1和0。 值
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.