【发布时间】:2019-10-16 11:47:49
【问题描述】:
我有一个名为 forecast version 的字段,它以“FY20 January Forecast”格式存储版本,以及存储日期的销售时间字段。我想要的是我的 MDX 查询,以根据当前日期过滤最后两个预测版本的数据。 例如。如果当前日期是 2019 年 10 月,它应该会显示 20 财年 9 月预测 和 20 财年 10 月预测 的数据。
我想使用它类似于 SQL 中的 where 条件。
【问题讨论】:
我有一个名为 forecast version 的字段,它以“FY20 January Forecast”格式存储版本,以及存储日期的销售时间字段。我想要的是我的 MDX 查询,以根据当前日期过滤最后两个预测版本的数据。 例如。如果当前日期是 2019 年 10 月,它应该会显示 20 财年 9 月预测 和 20 财年 10 月预测 的数据。
我想使用它类似于 SQL 中的 where 条件。
【问题讨论】:
看看下面的例子。在我的第一个查询中,我正在重新输入“Internet Sales Amount” 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,
([Date].[Calendar].[Month].&[2013]&[5]).lag(2):([Date].[Calendar].[Month].&[2013]&[5]).lag(1)
on rows
from
[Adventure Works]
编辑:使查询动态
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]
【讨论】: