需要在MDX中从当前日期起90天或更长的日期值

时间:2015-12-16 12:10:10

标签: ssas mdx

我有一个维度[日期]。[Last Met]。 我需要使用MDX从当前日期中提取超过90天的值。 请建议最佳方式。

1 个答案:

答案 0 :(得分:1)

你可以像这样过滤:

FILTER
    (
     [Date].[Last Met].MEMBERS,
     Datediff("d",[Date].[Last Met].CurrentMember.Name, Format(Now(),'yyyyMMdd') <=90
    )

更优雅的选择是在DSV中创建一个名为RollingLast90Days的计算列,并使用SQL datediff逻辑将其指定为1/0。一旦到位,你需要一个切片机:

     ...WHERE ([Time].[[RollingLast90Days].&[1])

以上是基于您每天处理多维数据集的假设。如果不在计算的度量中应用相同的逻辑。

IIF(
Datediff("d",[Date].[Last Met].CurrentMember.Name, Format(Now(),'yyyyMMdd') <=90,
1,
null)

然后在HAVINGWHERE子句中使用此切片器。