MDX OpeningPeriod 函数

MDX OpeningPeriod 函数将返回属于指定成员或指定级别的第一个同级成员。

多维表达式中 MDX OpeningPeriod 的基本语法如下所示。

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

对于查询中的 OpeningPeriod 函数,我们将使用以下显示数据。下图显示了日期维度中日历年份的列表。

Source table

MDX OpeningPeriod 函数示例

在此示例中,我们将使用 OpeningPeriod 函数查找日历年份中存在的第一个年份。

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

在上面的 MDX 查询中,我们在列中使用 [Internet Sales amount]。

[Measures].[Internet Sales Amount] ON COLUMNS

下面的代码行将返回日期维度中日历年份存在的第一个同级成员。

OPENINGPERIOD ([Date].[Calendar].[Calendar Year])

OpeningPeriod 函数示例 2

在此示例中,我们将使用 OpeningPeriod 函数查找日历年份 2013 中存在的第一个月份,并计算该月份的 Internet Sales Amount。

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

使用 MDX OpeningPeriod 查找范围 示例 1

在此示例中,我们将向您展示如何使用 OpeningPeriod 函数查找范围。以下查询将返回 2005 年至 2013 年日历年份的 Internet Sales amount。

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

在上面的 MDX 查询中,我们在列中使用 [Internet Sales amount]。

[Measures].[Internet Sales Amount] ON COLUMNS

下面的代码行将返回日期维度中日历年份存在的第一个同级成员,即 2005 年。

OPENINGPERIOD ([Date].[Calendar].[Calendar Year])

这意味着我们在 2005 年和 2013 年之间使用了范围运算符。因此,输出将显示日期维度中所有日历年份的 Internet Sales amount。

OPENINGPERIOD ([Date].[Calendar].[Calendar Year]): -- 2005

[Date].[Calendar].[Calendar Year].[CY 2013] -- 2013

使用 MDX OpeningPeriod 查找范围 示例 2

在此示例中,我们将向您展示如何使用 OpeningPeriod 函数查找范围。以下查询将返回日历年份 2013 中 1 月至 7 月的 Internet Sales amount。

SELECT 
  [Measures].[Internet Sales Amount] ON COLUMNS,
  OPENINGPERIOD (
             [Date].[Calendar].[Month] --January 2013 
            ,[Date].[Calendar].[Calendar Year].[CY 2013]
		): 
  [Date].[Calendar].[Month].[July 2013] ON ROWS
FROM [Adventure Works]
MDX OPENINGPERIODS FUNCTION 4