MDX ParallelPeriod 函数

MDX ParallelPeriod 函数用于返回指定成员的相同相对位置的先前期间的成员。例如,如果您想导航到某个特定成员, then we can use this ParallelPeriod function。

MDX ParallelPeriod 函数语法

多维表达式 (MDX) 中 ParallelPeriod 函数的基本语法如下所示

PARALLELPERIOD( Level_Expression, Member_Position, Member_Expression)

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

Level_Expression:请指定您要导航的级别。Member_Position:请指定您要导航的成员的位置。

  • 如果我们使用零 (Zero) 作为 Member_Position,则 MDX ParallelPeriod 函数将写入我们在 ParallelPeriod 函数之前提到的相同的 Member_Expression。
  • 如果我们使用负值 (Negative Value) 作为 Member_Position,则 ParallelPeriod 函数将向前移动指定的数量,并返回该位置的 Member_Expression。
  • 而且,如果我们使用正值 (Positive Value) 作为 Member_Position,则 ParallelPeriod 函数将向后移动指定的数量,并返回该位置的 Member_Expression。

在本文中,我们将向您展示如何编写 ParallelPeriod 函数来向前和向后导航,并提供示例。为此,我们将使用下面显示的数据。

MDX ParallelPeriod 函数与零 (Zero)

在此示例中,我们将向您展示当我们将零值用于 ParallelPeriod 函数时会发生什么。以下 MDX 查询将在 2013 年历年本身返回 12 月份的互联网销售额。

SELECT 
  [Measures].[Internet Sales Amount] ON COLUMNS,
  PARALLELPERIOD (
            [Date].[Calendar].[Month],
            0,
	    [Date].[Calendar].[Month].[December 2013] 
	        ) ON ROWS
FROM [Adventure Works]
MDX PARALLELPERIOD FUNCTION 1

MDX ParallelPeriod 函数与正值 (Positive Value)

在此示例中,我们向您展示当我们在 ParallelPeriod 函数中使用正整数值时会发生什么。以下查询将返回 2011 年历年的互联网销售额,因为具有正值 (2) 的 ParallelPeriod 函数将从给定的年份 (2013 – 2 = 2011) 向后移动两年。

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

ParallelPeriod 函数与负值 (Negative Value)

此示例向您展示当我们将负整数值用于 ParallelPeriod 函数时会发生什么。以下查询将返回 2012 年历年的互联网销售额,因为具有负值 (-2) 的 MDX ParallelPeriod 函数将从给定的年份 (2010 + 2 = 2012) 向前移动两年。

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

使用 ParallelPeriod 函数的范围

在此示例中,我们展示了如何使用 ParallelPeriod 函数查找范围。以下查询将返回 2010 年至 2013 年历年的互联网销售额,因为我们在 [CY 2010] 和 [CY 2013] 之间使用了范围符号 (:)

SELECT 
  [Measures].[Internet Sales Amount] ON COLUMNS,
  [Date].[Calendar].[Calendar Year].[CY 2010]:
  PARALLELPERIOD (
            [Date].[Calendar].[Calendar Year],
            -3,
	    [Date].[Calendar].[Calendar Year].[CY 2010] 
	      ) -- 2013
  ON ROWS 
FROM [Adventure Works]
MDX PARALLELPERIOD FUNCTION 4