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 函数与正值 (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 函数与负值 (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 函数的范围
在此示例中,我们展示了如何使用 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]
