我希望有人可以幫助我重組/重寫我的MDX查詢 - 我對MDX相當陌生,只知道危險。我使用蒙德里安如果有所作爲。MDX - 按[日期]過濾,但顯示[月]類別
這裏是堆積條形圖我生產... Injuries by Month and Category
這裏是我的查詢(簡體刪除所有對這個問題不相關的東西)...
WITH
SET [Date Range] AS {${mdxStartDateParam}.Parent : ${mdxEndDateParam}.Parent}
MEMBER [Measures].[Month Name] as [Incident Date.YQMD].currentmember.parent.parent.name || "-" || [Incident Date.YQMD].currentmember.name
SET [Classification Month Set] AS (
Hierarchize(
ORDER(
Hierarchize(FILTER([Classification].[Classification].members,[Classification].CURRENTMEMBER IN {Descendants([Classification].[${paramInjClass}])})),
[Measures].[Injury Count],
BDESC
)
) * [Date Range]
)
SELECT {[Measures].[Injury Count], [Measures].[Month Name]} ON COLUMNS,
NON EMPTY [Classification Month Set] ON ROWS
FROM [Injury Analysis]
我的問題是我的兩個日期參數($ {mdxStartDateParam}和$ {mdxEndDateParam})可以是[Day]級別的任何日期,而我的圖表X Axis顯示在[Month]級別,並且即使$ {mdxStartDateParam}在一個月的中途,我的查詢正在返回該月的所有數據。
例如。如果我的傷病發生在2月2日,但是我的$ {mdxStartDateParam}是[事件日期.YQMD]。[2017]。[Q1]。[2月]。[17],那麼傷害包括在圖表中。
有沒有一種方法可以重構我的MDX,以便2月的條形不會顯示2月份的所有數據,但只有Fenruary的數據是> = $ {mdxStartDateParam}和< = $ {mdxEndDateParam}?
我認爲Danylo的答案應該可行 - 如果用戶在其多維數據集中使用月份屬性hierachy? – whytheq
是的,它應該工作。我沒有關於可用層次結構的足夠信息。問題的關鍵不在於使用日期參數來創建一組月份,然後將這些月份(作爲整體)用作過濾器。 Danylo通過將參數放在WHERE中解決了這個問題。 – SebTHU