MDX LastPeriods 函数

MDX LastPeriods 函数用于在同一级别的成员之间进行导航。它返回从指定位置开始到该成员为止的成员集,包括该成员本身。例如,如果您想列出从某个位置到特定成员的成员,那么我们就可以使用此 LastPeriods 函数。

提示:如果您知道目标成员的索引位置,您可以使用此 MDX LastPeriod 函数。

MDX LastPeriods 函数语法

Multidimensional Expression 中 LastPeriods 的基本语法如下所示

LASTPERIODS (Member_Position, Member_Expression)

Member_Expression:任何返回有效成员的多维表达式。

Member_Position:请指定要导航的成员的位置。

  • 如果我们使用零(Zero)作为 Member_Position,MDX LastPeriods 函数将返回空集。
  • 如果我们使用负值(Negative Value),LastPeriods 函数将向前(朝着正方向)移动指定的值,并返回从该位置开始到成员表达式(Member_Expression)为止的成员集。
  • 如果我们使用正值(Positive Value),LastPeriods 函数将向后(朝着负方向)移动指定的值,并返回从该位置开始到成员表达式(Member_Expression)为止的成员集。

MDX LastPeriods 函数用于在同一级别的成员之间进行导航。例如,如果我们指定 City 成员作为 Member_Expression,LastPeriods 函数将在剩余的 City 成员之间进行导航。它不会向上(State – Province)或向下(Postal Code)导航到其他级别。

如何编写 LastPeriods 函数以同时向前和向后导航,并附带示例?为此,我们将使用以下数据。

MDX LastPeriods 函数与零(Zero)

在此示例中,我们将向您展示当我们在 LastPeriods 函数中使用零值时会发生什么。以下 MDX 查询将返回空集。

SELECT 
  [Measures].[Internet Sales Amount] ON COLUMNS,
  LASTPERIODS (
               0, 
              [Date].[Calendar].[Calendar Year].[CY 2013] 
	       ) ON ROWS
FROM [Adventure Works]

MDX LASTPERIODS FUNCTION 1

MDX LastPeriods 函数与正值(Positive Value)

当我们在 LastPeriods 函数中使用正整数值时会发生什么?以下查询将返回 2013 年、2012 年和 2011 年的 Internet Sales 金额,因为带有正值(3)的 LastPeriods 函数将回溯 2 年加上 2013 年。这是因为 LastPeriods 函数本身就包含了 2013 年。

SELECT 
  [Measures].[Internet Sales Amount] ON COLUMNS,
  LASTPERIODS (
               3, 
              [Date].[Calendar].[Calendar Year].[CY 2013] 
	       ) ON ROWS
FROM [Adventure Works]

MDX LASTPERIODS FUNCTION 2

MDX LastPeriods 函数与负值(Negative Value)

在此示例中,我们将向您展示当我们在 LastPeriods 函数中使用负整数值时会发生什么。以下查询将返回 2010 年、2011 年、2012 年和 2013 年的 Internet Sales 金额,因为带有负值(-4)的 LastPeriods 函数将向前(朝着正方向)移动 3 年加上 2010 年。这是因为 LastPeriods 函数本身就包含了 2010 年。

SELECT 
  [Measures].[Internet Sales Amount] ON COLUMNS,
  LASTPERIODS (
              -4, 
             [Date].[Calendar].[Calendar Year].[CY 2010] 
	      ) ON ROWS
FROM [Adventure Works]

MDX LASTPERIODS FUNCTION 3