繁体   English   中英

如何使此计算得出的度量在SSAS中正确汇总?

[英]How do I make this calculated measure roll up properly in SSAS?

我在Analysis Services中有一个计算得出的度量,该度量基于其最近三个期间返回某个位置的平均每日收入。 时间段是位置定义的时间长度,因此一个位置可以每月关闭其时间段,而另一个位置可以每季度关闭其时间段。

要返回平均每日收入,我有一个factPeriods表,该表返回一个期间的收入以及对该期间有贡献的天数。 以下MDX在位置级别返回正确的值,([度量]。[以AR收费的天数] // [[度量]。[以AR的天数计算的天数])。

问题是,当我汇总到更高的水平时,例如我想按州返回平均每日收入时,该计算是错误的,因为它首先汇总了影响各期间的天数,然后除以。 我希望平均首先在最低级别进行,然后再对每日平均收入的结果求和。 这是发生的事与我想发生的事的一个例子。

假设我只有两个地点,A和B。A每月关闭,B季度关闭。 最后关闭的结果是:

位置/收入/增加收入的天数

地点A / $ 3000/30天地点B / $ 1800/90天

位置A每天产生$ 100的收入,位置B每天仅产生$ 20的收入。 我的总费用应该是每天$ 120。 相反,它将返回每天40美元。 这是在计算级别发生的情况。

我希望公式为伪代码SUM(([Measures]。[Days in AR Charges])/([Measures .. [Days in AR Days]))

但实际上是给我(SUM([Measures]。[Days in AR Charges]))/(SUM([Measures]。[Days in AR Days]))

谁能帮助我确定合适的公式来按需进行此工作? 最终应该是$ 100 /天+ $ 20 /天,而不是$ 4800/120天。 我有一个可疑的地方,我可能需要使用后代,但是我不清楚我将如何使用它们,或者这是否是正确的方向。

使计算发生在叶级然后进行汇总的最简单方法是将其移动到CALCULATE之前。 MDX脚本中的声明。

通常,您应该离开CALCULATE; 应该是脚本中的第一条语句,但是我认为您所描述的情况是例外之一,在这种情况下,有理由在CALCULATE之前有一个计算成员;

如果您可以在ETL或处理中获得所需的数字,请不要使用SSAS计算,因为这样会更好。

在这种情况下,我将添加DSV计算以进行除法,然后允许SSAS正常求和。

我的直接解决方案是计算ETL流程中的平均每日收入,然后SSAS会将​​这些值相加。 我仍然很乐意看到MDX解决该问题的方法,尽管有人知道。

只需在计算中指定正确的“解决顺序”即可。 由于我不知道您的多维数据集结构是什么,因此我无法为您提供特定的MDX来解决您的问题,而是在文档中或通过Google查看“解决顺序”。 这正是“解决顺序”应该解决的问题。 您将基本上要告诉Analysis Services首先要做什么。

减少一个方程式3个单独的方程式? 在一个中计算分子,在另一个中计算分母,然后在第三个中计算除法? 我不知道您正在使用的工具,因此不知道您是否可以按顺序进行多次计算。 但这肯定会迫使您下订单。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM