2014-09-13 49 views
0
創建自定義彙總

我目前要求的工作如下,並希望在想辦法來配置我的度量的聚合一些幫助:我有一個包含以下項目ID的事實表用SSAS

,DateID,StoreID,ReceivedComments。收到評論工作的方式是每天創建一個新的記錄,以增加收到的評論的價值(例如,如果1月1日的Store 5中的第5項收到了23條評論,並且在第二天收到5條評論, 1月2日的行將是項目5,商店5,1月2日,28日)

我們使用MAX創建了一個度量,並且它在查詢中使用物品ID時正常工作。當我們開始向更高級別移動時,最大值會產生錯誤的結果。我們的要求是將度量設置如下:

如果選定的成員在物料級別上,那麼MAX,如果它在任何其他級別(日期或商店)上,那麼該度量應聚合所有物料的最大值這個日期或商店。

由於數據庫的業務規則和結構存儲和項目是不同的維度,所以我不能將它們包括在1層次結構中。

我們一直在玩自定義RollUps,但到目前爲止還沒有得到它的工作。

謝謝

回答

0

有人建議使用ISLEAF來確定級別,而不是使用ISLeaf,而是使用AS CASE WHEN [Item]。[ItemID] .CURRENTMEMBER.LEVEL IS [Item]。[ItemID]。[(All)]不必考慮日期,商店等其他維度,因爲我有其他幾個維度都表現相同的方式。

然後我用這個公式去決定的項目的最大的總和在這樣的特定商店:

SUM({[項目] [項目ID]。兒童},[措施] 。[ReceivedComments]),現在我期望這個測量有一些性能問題,但是我們正在進行一些測試,看看它是否可靠地處理實際數據。

0

我會通過使用更傳統的方法來解決這個事實表。我不會保留ReceivedComments列中的累計計數,而只會保留當天收到的評論數。

通過這種方式,您可以使用SUM來創建度量,而不是使用MAX,而是在進入更高級別時自動累加。

我可以看到這種方法的唯一缺點是您需要使用一系列日期而不是最近的日期才能獲得給定商品/商店/日期的所有評論的全部總數。但這對你的MDX來說是一個非常小的改變。

+0

不幸的是,數據的到來使得實現這種方法變得非常困難和不可靠。 – 2014-10-12 02:34:06