Filter MDX查询过滤器
我需要根据列(DatetimeA)进行筛选。DatetimeA中的值的格式为19990101(yyyyMMdd)。我需要过滤我的数据,只显示过去60天 Mdx查询:Filter MDX查询过滤器,filter,ssas,mdx,where-clause,Filter,Ssas,Mdx,Where Clause,我需要根据列(DatetimeA)进行筛选。DatetimeA中的值的格式为19990101(yyyyMMdd)。我需要过滤我的数据,只显示过去60天 Mdx查询: SELECT NON EMPTY {Measures].[DateA] } ON COLUMNS ,NON EMPTY { [Date].[DatetimeA].[DatetimeA].ALLMEMBERS ) }DIMENSION PROPERTIES MEMBER_CAPTION ,MEMBER
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,介于(格式(dateadd(“d”)、-60,today())、“yyyyymmdd”)和(格式(dateadd(“d”,0,today())、“yyyyymmdd”)之间。
请在上面的查询中包含更改。谢谢!下面的代码必须在SSAS端生成一个动态集:
{
StrToMember('[Date].[DatetimeA].[DatetimeA].&[' + Format(Now(),'yyyyMMdd') + ']')
:
StrToMember('[Date].[DatetimeA].[DatetimeA].&[' + Format(Now(),'yyyyMMdd') + ']').Lag(59)
}
另外,您还可以添加一个SSRS参数来获取当前日期,并将其StrToMember到MDX代码中