如何筛选过去一年的MDX中的数据
问题描述:
我正在尝试编写一个MDX
表达式,该表达式将返回上一年(即从今天到365天之前)的总开发票。我目前有:如何筛选过去一年的MDX中的数据
SELECT
NON EMPTY
{ [Measures].[Invoiced] }
ON COLUMNS
FROM
(
SELECT
(
[Date Invoiced].[Day].&[2013-10-01T00:00:00]
: [Date Invoiced].[Day].&[2014-10-01T00:00:00]
) ON COLUMNS
FROM [Sales]
)
我想的东西,如Now()
,并且2013-10-01T00:00:00
的东西,如(Now()-365))
更换2014-10-01T00:00:00
,但一直未能找到正确的语法。
的MDX
要在PowerPivot
在Excel 2010
不支持暴露VBA
参数一起使用,所以我不能以编程方式替代日期。
答
您可以使用mdx上的滞后函数,此函数返回维度内提供的成员之前的成员n位置的值。
下面是该函数的引用: http://mdxpert.com/Functions/MDXFunction.aspx?f=37
这里是我使用的滞后从一个维度得到以前的值,在这种情况下,我得到了前一年的价值。
MEMBER [Measures].[Previous] as ([Data].CurrentMember.lag(12), [Measures].[Example])
+0
滞后函数当然可以成为解决这个问题的一部分,但主要问题仍然存在 - 如何在今天和今天(今天 - 12个月)之间的滑动时间间隔中选择所有成员。这个例子展示了如何比较一个值与之前12个时间段相同的值,这不是我想要做的。你能否改进这个例子来展示如何替换原始问题中的硬编码日期? – 2014-12-02 07:05:15
您可以在Excel中创建自定义设置?我没有使用PP,所以不确定自定义集是否有帮助 - 一旦创建了自定义集,可以将它添加到主键的背景? – whytheq 2014-10-07 19:54:53
是PP从表格模型中获取数据吗? – whytheq 2014-10-07 19:55:44
@whytheq - PowerPivot通过MDX查询从SQL Server分析服务器多维数据集获取其开票数据,而不是从表格模型获取。我不确定“Excel中的自定义设置”是什么意思。 – 2014-10-08 09:24:12