我正在使用MDX查詢來提取信息以支持一組報告。報告需要高度詳細的信息,因此需要一段時間才能生成。爲了加快訪問時間,我們將需要的數據提取出來並存儲在一個平坦的Oracle表中,然後在Excel中連接到表。這使得報告在數秒內而不是在幾分鐘內刷新。MDX MEMBER導致NON EMPTY無法過濾
此前,MDX由部門生成並由100個部門運行,然後運行多個其他過濾器。所有這些都是在VB.Net中完成的。過濾器的要求已經發展到這種方法不可持續的程度(可能不是最好的方法)。
我已經將整個數據集構建到一個完美工作的MDX查詢中。我的一個組,我CROSS JOIN包括來自三個不同層次的層次結構的成員,它看起來像這樣:
(
Descendants([Merch].[Merch CHQ].[All], 2),
Descendants([Merch].[Merch CHQ].[All], 3),
[Merch].[Merch CHQ].[Department].&[1].Children
)
對我來說,問題是在我們的層次(我不能改變),每個組(第一項目)和每個部門(第二項目)與他們的命名具有相同的結構,即15-DeptName,並且使用起來很混亂。
爲了解決它,我增加了一個成員:
MEMBER
[Measures].[Merch Level] AS
(
[Merch].[Merch CHQ].CurrentMember.Level.Name
)
它返回什麼類型的部件,它完美的作品。
問題是,它會更新每個成員,所以沒有行被NON BLANK過濾,而不是65k行,我有130k行,這會損害我的訪問性能。
我的查詢是否可以更改爲仍然過濾出非空白使用IIF檢查每個測量爲空?
完美的工作,謝謝彼得。 – Jesse 2012-02-03 17:18:18