如何过去一年在MDX中过滤数据

时间:2014-10-07 12:23:03

标签: mdx

我正在尝试编写一个MDX表达式,该表达式将返回去年(即今天和365天之间)的发票总额。我目前有:

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]
    ) 

我想用2014-10-01T00:00:00取代Now(),用2013-10-01T00:00:00取代(Now()-365)),但无法找到正确的语法。

MDX将在PowerPivot Excel 2010中使用,VBA不支持{{1}}公开的参数,因此我无法以编程方式替换日期。

1 个答案:

答案 0 :(得分:1)

您可以在mdx上使用滞后函数,此函数返回维度中提供的成员之前的成员n位置的值。

以下是此功能的参考: http://mdxpert.com/Functions/MDXFunction.aspx?f=37

以下是我如何使用滞后来获取维度中的上一个值,在这种情况下,我获得了上一年的值。

MEMBER [Measures].[Previous] as ([Data].CurrentMember.lag(12), [Measures].[Example])