【发布时间】:2021-06-08 11:12:44
【问题描述】:
我是 MDX 新手,想开发 SSAS 多维数据集,在以下场景中需要一些帮助:
在 SSAS 设计器中的“计算”选项卡上:
我正在创建一个名为 [QualityKPI] 的计算成员,我正在为其编写 MDX 表达式,如下所示:
IIF([Measures].[Rows Count] <> 0 and [Measures].[Coefficient] <> 0, [Measures].[QualityFinal]/[Measures].[Coefficient],IIF([Measures].[Rows Count] <> 0 and [Measures].[Coefficient] = 0,[Measures].[Quality]/[Measures].[NumberofRecords],Null))
但是我如何在这里实现 WHERE 条件?
例如,在我的事实表中,我有一列 [Rows Count],其中包含两个不同的值 1 和 0。
我想实现上面的 MDX 表达式,这样它在进行上面的计算时只考虑 Rows Count=1。
作为示例,我有一些如下所示的记录,每行的 QualityKPI 应产生此结果,并且公式返回完全相同:
但是在聚合级别(假设我想计算所有产品的 QualityKPI),我只想考虑 [Rows Count] 等于 1 的记录,因此聚合应该产生 0.5496 ((0.209948793 + 0 + 0 + 0) / (0.209948793 + 0 + 0 + 0.172043011 )) 但是使用上面的公式,它产生 0.18087 ((0 + 0.005869074 + 0 + 0 + 0.209948793 + 0 + 0 + 0) / (0 + 0.005869074 + 0 + 0.805352798 + 0.209948793 + 0 + 0 + 0.172043011 ))。
感谢任何帮助。
【问题讨论】:
标签: ssas calculated-columns olap cube