Ssas 用于提取日期的MDX查询&;将其用作字符串以筛选数据

Ssas 用于提取日期的MDX查询&;将其用作字符串以筛选数据,ssas,mdx,Ssas,Mdx,我有一个名为预测版本的字段,它以“FY20一月预测”的格式存储版本,还有一个存储日期的销售时间字段。我想要的是我的MDX查询根据当前日期过滤最后两个预测版本的数据。 例如,如果当前日期为2019年10月,则应向我显示20财年9月预测和20财年10月预测的数据 我想使用它类似于SQL中的where条件。看看下面的示例。在我的第一个查询中,我正在重新计算“互联网销售额” 2013年5月 select { [Measures].[Internet Sales Amount] } on columns

我有一个名为预测版本的字段,它以“FY20一月预测”的格式存储版本,还有一个存储日期的销售时间字段。我想要的是我的MDX查询根据当前日期过滤最后两个预测版本的数据。 例如,如果当前日期为2019年10月,则应向我显示20财年9月预测和20财年10月预测的数据


我想使用它类似于SQL中的where条件。

看看下面的示例。在我的第一个查询中,我正在重新计算“互联网销售额” 2013年5月

select 
{
[Measures].[Internet Sales Amount]
}
on columns,
[Date].[Calendar].[Month].&[2013]&[5]
on rows 
from 
[Adventure Works]
接下来,我们将其修改为返回“2013年5月”之前的两个月

编辑:使查询成为动态查询

select 
{
[Measures].[Internet Sales Amount]
}
on columns,
strtoset('[Date].[Calendar].[Month].&['+cstr(datepart("yyyy",Now()))+ ']&['+cstr(datepart("m",Now()))+'].lag(2):[Date].[Calendar].[Month].&['+cstr(datepart("yyyy",Now()))+ ']&['+cstr(datepart("m",Now()))+'].lag(1)')
--Output of the above expression is 
--[Date].[Calendar].[Month].&[2019]&[10].lag(2):[Date].[Calendar].[Month].&[2019]&[10].lag(1)
on rows 
from 
[Adventure Works]

但我不想硬编码一个月。我希望它是动态的,这取决于当前的月份创建上面的查询动态。但是,请确保根据您的选择修改表达式hierarchy@aarti上面的问题有什么进展吗?
select 
{
[Measures].[Internet Sales Amount]
}
on columns,
strtoset('[Date].[Calendar].[Month].&['+cstr(datepart("yyyy",Now()))+ ']&['+cstr(datepart("m",Now()))+'].lag(2):[Date].[Calendar].[Month].&['+cstr(datepart("yyyy",Now()))+ ']&['+cstr(datepart("m",Now()))+'].lag(1)')
--Output of the above expression is 
--[Date].[Calendar].[Month].&[2019]&[10].lag(2):[Date].[Calendar].[Month].&[2019]&[10].lag(1)
on rows 
from 
[Adventure Works]