2017-03-28 107 views
0

我正在計算calc腳本中的某些內容,所以我可以將一行從事實表分配給維度成員。SSAS-MDX在計算中將維度行分配給維度成員基礎

業務場景如下。我有一個記錄客戶信用和借記(客戶可以做很多小額貸款)和一個維度客戶的事實表。我想根據他在給定時間段內的信用和借記歷史對客戶進行分類。客戶變更的分類時間。

示例 規則是,如果客戶餘額(在給定期限內)超過50,000元,則分類爲「大型」,如果他有超過記錄且在過去3個月內完成了付款他是一個「P & P.如果他沒有任何資金,並在過去3個月內完成了其」常規「支付。

我的問題更多的是關於方向而不是特定的代碼,哪種方式是最佳的方式實現這樣的規則?

問候

文森特·迪亞洛-NORT

+1

在數據庫中計算並將結果添加到客戶表(如果您有某種ETL過程)會不會更容易/更好? –

+0

或者在事實表中,您可以根據當前餘額和所需值添加命名計算,然後在該表上創建一個退化維。儘管如此,它仍然是一個單獨的維度。不是客戶的一部分。 (命名計算示例:https://www.codeproject.com/Tips/660919/Introduction-to- Named- Calculated-in-SQL-Server-A) –

回答

0

我想創建一個事實表的平衡自動更新的狀態每天:

  • 檢查滾存結餘昨天加上今天的記錄。
  • 當餘額= 0時,則刪除記錄。

Plus僅添加付款添加流量事實表。

添加措施:

  • LastChild聚集的第一個事實表。
  • 總和第二個事實表的聚合。

當它完成後,你可以申請一個MDX計算:

case 
    when [Measure].[Balance] > 50000 
    then "Large" 
    when [Measure].[Payments] + ([Date].[Calendar].CurrentMember.Lag(1),[Measure].[Payments]) + ([Date].[Calendar].CurrentMember.Lag(2),[Measure].[Payments]) > 0 
    then "P&P" 
    else "Regular" 
end 

爲了給你詳細解答,你必須提供有關數據結構的更多信息。