MDX 查询过滤器

MDX Query Filter

我有一种情况需要根据列 (DatetimeA) 进行过滤。 DatetimeA 中的值的格式为 19990101(yyyyMMdd)。我需要过滤我的数据以仅显示最近 60 天。

Mdx 查询:

    SELECT NON EMPTY {Measures].[DateA] } ON COLUMNS
    ,NON EMPTY { [Date].[DatetimeA].[DatetimeA].ALLMEMBERS ) 
    }DIMENSION PROPERTIES MEMBER_CAPTION
    ,MEMBER_UNIQUE_NAME ON ROWS
    FROM (
    SELECT ([Date].[DatetimeA].& [20170118] : [Date].[DatetimeA].[20170318]) 
    ON COLUMNS
    FROM [TABMODEL]
    ) CELL PROPERTIES VALUE
    ,BACK COLOR
    ,FORE COLOR
    ,FORMATTED_VALUE
    ,FORMAT_STRING
    ,FONT_NAME
    ,FONT_SIZE
    ,FONT_FLAGS

我们如何过滤 DatetimeA 列以仅显示最近 60 天?我不需要对值进行硬编码,而是需要根据日期进行更改的内容。在 ssrs 中,这类似于 DatetimeA 在 (format(dateadd("d",-60,today()),"yyyyMMdd") 和 (format(dateadd("d",0,today( )),"yyyyMMdd"). 请在上面的查询中包含更改。谢谢!

下面的代码必须在 SSAS 端生成一个动态集:

{
    StrToMember('[Date].[DatetimeA].[DatetimeA].&[' + Format(Now(),'yyyyMMdd') + ']')
    :
    StrToMember('[Date].[DatetimeA].[DatetimeA].&[' + Format(Now(),'yyyyMMdd') + ']').Lag(59)
}

此外,您还可以添加一个 SSRS 参数来获取当前日期,并将其添加到 MDX 代码中。