MDX Lag 函数用于在同一级别的成员之间导航,并返回指定位置的成员。例如,如果您想导航到某个特定成员,则可以使用此 Lag 函数。
MDX Lag 函数语法
多维表达式中 Lag 函数的基本语法如下所示
Member_Expression.LAG (Member_Position)
Member_Expression:返回有效成员的任何多维表达式。
Member_Position:请指定要导航的成员的位置。
- 如果我们使用零作为 Member_Position,则 MDX Lag 函数将写入 Lag 函数之前我们提到的相同的 Member_Expression。
- 如果我们使用负值作为 Member_Position,则 Lag 函数将向前移动指定的次数并返回该位置的 Member_Expression。
- 如果我们使用正值作为 Member_Position,则 Lag 函数将向后移动指定的次数并返回该位置的 Member_Expression。
MDX Lag 函数用于在同一成员级别之间导航。例如,如果我们以 City 成员作为 Member_Expression,Lag 函数将在其余城市之间导航。它不会向上(State – Province)或向下(Postal Code)导航到其他级别。
如何编写 Lag 函数来导航前后方向并提供示例?为此,我们将使用下面展示的数据。

MDX Lag 函数与零
在此示例中,我们将向您展示当我们在 Lag 函数中使用零值时会发生什么。以下查询将返回 2013 年的经销商销售额和税额。
提示:在此,正值的 Lead 函数 等同于负值的 Lag 函数。
SELECT {
[Measures].[Reseller Sales Amount]
,[Measures].[Reseller Tax Amount] } ON COLUMNS,
[Date].[Calendar].[Calendar Year].[CY 2013].LAG(0) ON ROWS
FROM [Adventure Works]

MDX Lag 函数与正值
此示例显示了在 Lag 函数中使用正整数值时会发生什么。由于正值 (3) 的 Lag 函数将从给定年份(2013 - 3 = 2010)回溯 3 年,因此以下查询将返回 2010 年的经销商销售额和税额。
SELECT {
[Measures].[Reseller Sales Amount]
,[Measures].[Reseller Tax Amount] } ON COLUMNS,
[Date].[Calendar].[Calendar Year].[CY 2013].LAG(3) ON ROWS
FROM [Adventure Works]
MDX Lag 函数与负值
在此示例中,我们将向您展示当我们在 Lag 函数中使用负整数值时会发生什么。以下 MDX 查询返回 2013 年的经销商销售额和税额。因为负值 (-2) 的 Lag 函数将从给定年份(2011 + 2 = 2013)向前移动 2 年。
SELECT {
[Measures].[Reseller Sales Amount]
,[Measures].[Reseller Tax Amount] } ON COLUMNS,
[Date].[Calendar].[Calendar Year].[CY 2011].LAG(-2) ON ROWS
FROM [Adventure Works]
使用 MDX Lag 函数查找范围
如何使用 Lag 函数查找范围?由于我们在 [CY 2013] 和 [CY 2013].LAG(3) 之间使用了范围符号(:),因此以下查询将返回 2010 年至 2013 年的经销商销售额和税额。
SELECT {
[Measures].[Reseller Sales Amount]
,[Measures].[Reseller Tax Amount] } ON COLUMNS,
[Date].[Calendar].[Calendar Year].[CY 2013]:
[Date].[Calendar].[Calendar Year].[CY 2013].LAG(3) ON ROWS
FROM [Adventure Works]
如果您想通过向前移动来查找范围,请使用带有负值的 Lag 函数。



评论已关闭。