MDX ClosingPeriod 函数将返回指定成员所属的最后一个同级成员,或指定级别的最后一个同级成员。
MDX ClosingPeriod 函数语法
多维表达式中 ClosingPeriod 的基本语法如下所示
CLOSINGPERIOD (Level_Expression, Member_Expression)
- Member_Expression:任何返回有效成员的多维表达式。
- Level_Expression:请指定要导航到的级别。
对于这个 MDX 中的 ClosingPeriod 函数示例,我们将使用下面显示的数据。下图显示了“日期”维度中的“日历年份”列表

MDX ClosingPeriod 函数示例
在此示例中,我们将使用 ClosingPeriod 函数查找日历年份中存在的最后一年。
SELECT [Measures].[Internet Sales Amount] ON COLUMNS, CLOSINGPERIOD ([Date].[Calendar].[Calendar Year]) ON ROWS FROM [Adventure Works]

在上面的 MDX 查询中,我们在列上使用了 [Internet Sales amount]
[Measures].[Internet Sales Amount] ON COLUMNS
下面这行代码将返回“日期”维度“日历年份”中存在的最后一个同级成员,即 2014 年。
CLOSINGPERIOD ([Date].[Calendar].[Calendar Year])
ClosingPeriod 函数示例 2
在此示例中,我们将使用 ClosingPeriod 函数查找日历年份 2013 中存在的最后一个月,并计算其“Internet Sales Amount”。
SELECT
[Measures].[Internet Sales Amount] ON COLUMNS,
CLOSINGPERIOD (
[Date].[Calendar].[Month]
,[Date].[Calendar].[Calendar Year].[CY 2013]
) ON ROWS
FROM [Adventure Works]
使用 MDX ClosingPeriod 的范围示例
在此示例中,我们将展示如何使用 ClosingPeriod 函数查找范围。以下 MDX 查询将返回 2010 年至 2014 年日历年份的“Internet Sales”金额
SELECT [Measures].[Internet Sales Amount] ON COLUMNS, [Date].[Calendar].[Calendar Year].[CY 2010]: CLOSINGPERIOD ([Date].[Calendar].[Calendar Year]) ON ROWS FROM [Adventure Works]

在上面的 MDX 查询中,我们在列上使用了 [Internet Sales amount]
[Measures].[Internet Sales Amount] ON COLUMNS
下面这行代码将返回“日期”维度“日历年份”中存在的最后一个同级成员,即 2014 年。
CLOSINGPERIOD ([Date].[Calendar].[Calendar Year])
这意味着我们使用了 2010 年和 2014 年之间的范围运算符。因此,输出将显示“日期”维度中所有日历年份的“Internet Sales”金额。
[Date].[Calendar].[Calendar Year].[CY 2010] -- 2010 CLOSINGPERIOD ([Date].[Calendar].[Calendar Year]): -- 2014
使用 ClosingPeriod 的范围示例 2
在此示例中,我们将展示如何使用 ClosingPeriod 函数查找范围。以下查询将返回日历年份 2013 中从 5 月到 12 月的“Internet Sales”金额
SELECT
[Measures].[Internet Sales Amount] ON COLUMNS,
[Date].[Calendar].[Month].[May 2013]:
CLOSINGPERIOD (
[Date].[Calendar].[Month]
,[Date].[Calendar].[Calendar Year].[CY 2013]
) ON ROWS
FROM [Adventure Works]

