MDX ClosingPeriod 函数

MDX ClosingPeriod 函数将返回指定成员所属的最后一个同级成员,或指定级别的最后一个同级成员。

MDX ClosingPeriod 函数语法

多维表达式中 ClosingPeriod 的基本语法如下所示

CLOSINGPERIOD (Level_Expression, Member_Expression)
  • Member_Expression:任何返回有效成员的多维表达式。
  • Level_Expression:请指定要导航到的级别。

对于这个 MDX 中的 ClosingPeriod 函数示例,我们将使用下面显示的数据。下图显示了“日期”维度中的“日历年份”列表

MDX CLOSINGPERIOD FUNCTION

MDX ClosingPeriod 函数示例

在此示例中,我们将使用 ClosingPeriod 函数查找日历年份中存在的最后一年。

SELECT 
  [Measures].[Internet Sales Amount] ON COLUMNS,
  CLOSINGPERIOD ([Date].[Calendar].[Calendar Year]) ON ROWS
FROM [Adventure Works]
MDX CLOSINGPERIOD FUNCTION 1

在上面的 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 FUNCTION 2

使用 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 CLOSINGPERIOD FUNCTION 3

在上面的 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]
CLOSINGPERIOD 4