全部文档
文档中心多维表达式MDX函数集合函数MemberSet

MemberSet

函数用于返回指定成员的满足条件的后代成员的集合。该函数属于先胜云平台MDX函数。

MemberSet ( Member_Expression , [{ Distance }[, Desc_flags ]])

参数

说明

Member_Expression

表示指定的维度成员,可以直接使用成员表达式,或相应的返回单个维度成员的函数。

Distance

可选,表示从指定的维度成员开始往下(往叶子节点的方向)的距离。如果用0则表示指定成员本身。

Desc_flags

可选,表示从指定的维度成员开始往下(往叶子节点的方向)的距离。如果用0则表示指定成员本身。

  • Member_Expression 表示指定的维度成员,可以直接使用成员表达式,或相应的返回单个维度成员的函数。

  • Distance 可选,表示从指定的维度成员开始往下(往叶子节点的方向)的距离。如果用0则表示指定成员本身。

  • Desc_flags 可选,类型标志,包含如下选项:

标志

描述

SELF

仅返回指定级别或指定距离处的后代成员。 如果指定级别为指定成员所在的级别,该函数将包括指定成员。

AFTER

返回指定级别或指定距离处的所有从属级别的后代成员。

BEFORE

可选,表示从指定的维度成员开始往下(往叶子节点的方向)的距离。如果用0则表示指定成员本身。

BEFORE_AND_AFTER

返回指定成员和指定级别之间或指定距离内所有级别的后代成员。 它包含指定成员,但不包括指定级别或距离的成员。

SELF_AND_AFTER

返回指定级别或指定距离内的后代成员,以及指定级别或指定距离内的所有从属级别的后代成员。

SELF_AND_BEFORE

返回指定级别或指定距离内的后代成员,以及指定成员和指定级别之间或指定距离内所有级别的后代成员(包括指定成员)。

SELF_BEFORE_AFTER

返回指定成员所在级别的所有从属级别的后代成员(包括指定成员)。

LEAVES

返回指定成员和指定级别之间或指定距离内的叶后代成员。

我们以下图为例来解释MemberSet函数的用法。在期间维度中,我们一共设定了4级,全年,半年,季度和月份。

1、 Self,返回层级本身

MemberSet([Period].[YearTotal],2,Self)

返回: {[Period].[Q1],[Period].[Q2],[Period].[Q3],[Period].[Q4]}

2、 使用After,返回指定层级以下的成员

MemberSet([Period].[YearTotal],1,After)

返回: {[Period].[Q1],[Period].[1], [Period].[2], [Period].[3], [Period].[Q2],[Period].[4], [Period].[5], [Period].[6], [Period].[Q3],[Period].[7], [Period].[8], [Period].[9], [Period].[Q4],[Period].[10], [Period].[11], [Period].[12]}

3、 使用Before,返回指定层级以上的成员 示例1:

MemberSet([Period].[YearTotal],2,Before)

返回: {[Period].[YearTotal], [Period].[1half], [Period].[2half]}

示例2:

MemberSet([Period].[2half],2,Before)

返回: {[Period].[2half], [Period].[Q3], [Period].[Q4]}

随后四种标志BEFORE_AND_AFTER, SELF_AND_AFTER, SELF_AND_BEFORE, SELF_BEFORE_AFTER则通过组合上面的Self,After和Before标志来实现。

4、 如果未指定级别、距离和标志,此函数将在假定使用了以下语法的情况下执行操作:

MemberSet
(
Member_Expression ,
Member_Expression.Level ,
SELF_BEFORE_AFTER
)

如下列写法:

MemberSet([Period].[YearTotal])

会被默认转换成:

MemberSet([Period].[YearTotal],0,SELF_BEFORE_AFTER)

返回: YearTotal, 1half, Q1, 1, 2, 3, Q2, 4, 5, 6, 2half, Q3, 7, 8, 9, Q4, 10, 11, 12。 {[Period].[YearTotal], [Period].[1half], [Period].[Q1],[Period].[1], [Period].[2], [Period].[3], [Period].[Q2],[Period].[4], [Period].[5], [Period].[6], [[Period].[2half], Period].[Q3],[Period].[7], [Period].[8], [Period].[9], [Period].[Q4],[Period].[10], [Period].[11], [Period].[12]} 即返回YearTotal成员自己以及其所有后代。

5、 如果指定了级别但未指定说明标志,此函数将在假定使用了以下语法的情况下执行操作:

MemberSet
(
Member_Expression ,
Level_Expression,
SELF
)

如下列写法:

MemberSet([Period].[YearTotal],1)

会被默认转换成:

MemberSet([Period].[YearTotal],1,SELF)

返回: {[Period].[1half], [Period].[2half]}

6、 当需要返回所有的叶子节点,又不确定一共多少层级时,可以在距离参数上传入-1,表示一直到最底层。

MemberSet([Period].[YearTotal],-1,Leaves)

返回: {[Period].[1], [Period].[2], [Period].[3], [Period].[4], [Period].[5], [Period].[6], [Period].[7], [Period].[8], [Period].[9], [Period].[10], [Period].[11], [Period].[12]}

本页目录

回到顶部

咨询热线

400-821-9199

我们使用 ChatGPT,基于文档中心的内容以及对话上下文回答您的问题。

ctrl+Enter to send