我使用以下(簡體)星計劃作爲一個SSAS OLAP多維數據集的數據源: 略相關尺寸
在我的立方體,我有措施[天],它只是包含「 1「 - 這只是一個簡單的方法來獲取某段時間的天數,對於計算每日平均值很有用,等等。顯然,這個度量與店鋪和員工維度無關。
現在,比方說,我用下面的MDX查詢:
SELECT { [SalesAmount], [Days] } on 0,
{ [Shop].[Shop].[Shop].members } on 1
FROM
[MyCube]
WHERE
([Shop].[Country].[USA], [Calendar].[Month].&[201406])
這將返回在美國所有的商店名單,與他們的銷售金額爲2014年6月,和天在六月號。它按預期工作,性能很好。
現在說,我想要相同的清單,但除了商店之外,我想要按員工拆分銷售額。當然,我穿越員工維度與鋪尺寸:
SELECT { [SalesAmount], [Days] } on 0,
{ [Shop].[Shop].[Shop].members *
[Employee].[Employee].[Employee].members } on 1
FROM
[MyCube]
WHERE
([Shop].[Country].[USA], [Calendar].[Month].&[201406])
有兩個問題與此:首先,業績跨越這兩個(潛在的)大尺寸時,遭受了很多。其次,我獲得了大量銷售額= NULL
的記錄,這些記錄對於所有與美國商店無關的員工都是如此。如果我刪除[天]度量,我會得到預期的結果,但我需要日平均值等的度量值。
我正在尋找替代方法來建模我的多維數據集,以避免此問題。也就是說,當我通過Shop-dimension過濾我的事實表時,我只希望顯示Employee-dimension中的相關記錄(因此,由於Employee和Shop維度通過事實表相關,所以此帖的標題)。
我已經考慮將商店和員工維度結合到一個「組織」維度中,但這會產生多個問題:首先,員工可能在多個商店中工作,並且隨着時間的推移,分支機構可能會發生變化。
注:我沒有在尋找替代MDX解決方案,因爲我的最終用戶使用各種前端工具,他們無法控制生成的MDX。正如我所見,問題應該在多維建模中解決,而不是在前端。建模技術和參考文獻將非常感激。