ssas - 带过滤器的 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]
希望这对某人有意义!
解决方案
啊,有办法了!
由于我的 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,非常感谢您的所有投入!它非常有价值,让我的大脑朝着正确的方向旋转 :-)
推荐阅读
- ios - 在收据验证响应中未收到 expiration_date、expiration_date_ms 和 expiration_date_pst
- neural-network - 使用视觉检测系统的自动驾驶汽车如何处理 n 种可能性作为输入
- angular - 如何在 TS (Angular) 中的数字类型变量中保留十进制零?
- css - 如何使用 webpack/rails 6 预加载自定义字体
- jenkins - Groovy 脚本因系统 groovy 而失败
- c - c循环函数计算时间复杂度
- php - Laravel 发布数据
- javascript - 在 Formik 中提交嵌套表单
- javascript - 使用 ngx-translate 以 Angular 10 转换动态字符串
- mysql - 通过匹配值重新组合数据