我希望有人可以帮助我重组/重写我的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