簡體   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