Ssas 规范化问题的MDX选择性求和

Ssas 规范化问题的MDX选择性求和,ssas,olap,mdx,olap-cube,Ssas,Olap,Mdx,Olap Cube,我是MDX新手,在从求和中筛选出值方面有问题 我们希望执行归一化计算,特别是数量(q)除以基数(b)得到强度(I)。公式相当简单,I=q/b 我们的立方体结构: 我们有事实表FactQuantity和FactBasis,它们都与我们的DimOrg和DimTime维度表相关联。这两个维度都有层次结构:DimTime中的月份汇总为年份,DimOrg中的位置汇总为业务单位和组 事实数据表彼此不同步:仅仅因为特定组织id和时间存在数量,就不能保证相同组织id和时间存在基数 我的解决方案尝试: 计算构件的

我是MDX新手,在从求和中筛选出值方面有问题

我们希望执行归一化计算,特别是数量(q)除以基数(b)得到强度(I)。公式相当简单,I=q/b

我们的立方体结构:

我们有事实表FactQuantity和FactBasis,它们都与我们的DimOrg和DimTime维度表相关联。这两个维度都有层次结构:DimTime中的月份汇总为年份,DimOrg中的位置汇总为业务单位和组

事实数据表彼此不同步:仅仅因为特定组织id和时间存在数量,就不能保证相同组织id和时间存在基数

我的解决方案尝试:

计算构件的基本形式很简单: [措施][数量]/[措施][依据]

当我们在两个维度的最低级别进行查看时,这可以很好地工作,但是当您将维度汇总并开始聚合时,问题就会出现

问题是,包含的数量值在同一时间和位置没有相应的基值,因此分子太大,因此不正确

快速示例:

A组中的org_id 001的基数为100,数量为1000,因此其计算强度为1000/100=10。到目前为止还不错。 A组中的org_id 002也没有依据,但其数量为2000,因此其计算的强度误差为0。好的

向上滚动到A组,将数量(3000)和基数(100)相加,留下30的计算强度,这对于该组是不正确的。2000应该被排除在外,因为它对于相同的组织id和时间没有相应的基值

非常感谢您提供的任何帮助

谢谢,MSDN论坛上的Deepak Puri:

假设[DimOrg].[Location]和[DimTime].[Month]是这两个维度的叶级属性,您可以将这些叶上的[Measures].[Quantity]分子以基数相加,如下所示:

Sum(非空)(现有[DimOrg].[Location].[Location].[Members
*[DimTime].[Month].[Month]。成员,
[措施][依据],
[措施][数量])
/[措施][依据]