DrillDownMemberBottom
遍历集合1中的成员,如果也存在于集合2中则做该成员的下钻。结果集包含集合1中的成员和下钻得到的成员,默认顺序排列。若指定了numeric_value 参数,则下钻得到的成员按值进行升序排列,再返回不大于count个数成员。若指定了recursive参数,并且集合2中存在集合1第一次钻取的子项,则对该子项进行下钻,返回的子项同时受recursive和count参数影响,效果同上。
语法
DRILLDOWNMEMBERBOTTOM(set, set, count [, [numeric_value] [, RECURSIVE] ] )
参数
set | 返回集的有效多维表达式 (MDX)。 |
count | 限制下钻的tuple的数目(不超过count值)。 |
numeric_value | (可选)指定了numeric_value则下钻的同级成员会据此排序(升序)。 |
recursive | (可选)指定了recursive,则递归地将结果集中的成员与第二个集合进行比较,判断是否继续下钻。 |
备注
如果第一个集合包含父成员和一个或者多个子成员,则父成员不会下钻; 第二个集合的维度只能有一个。
示例一
select DrilldownMemberBottom({[期间].[2023年]},{[期间].[2023年]},2) on rows, {[版本].&[50672]} on columns from [模型一]
where ([组织].&[50585],[场景].&[50685],[产品].&[50688],[科目].&[50215])
运行结果:
产品: 不分
场景: 累计预算
科目: 工资-管理费用合计
组织: 开发2部
期间 | 年初编报01版本 |
2023年 | 1200.00 |
2023年1季度 | 200.00 |
2023年2季度 | 400.00 |
集合1和集合2中均有期间维度[2023年],并且集合1中没有[2023年]的子项,所以对[2023年]进行下钻,根据count的值,结果集中返回[2023年]和他的前两个子项[2023年1季度]和[2023年2季度]。
示例二
select DrilldownMemberBottom({[期间].[2023年]},{[期间].[2023年]},2,[版本].&[50672]) on rows, {[版本].&[50672]} on columns from [模型一]
where ([组织].&[50585],[场景].&[50685],[产品].&[50688],[科目].&[50215])
运行结果:
产品: 不分
场景: 累计预算
科目: 工资-管理费用合计
组织: 开发2部
期间 | 年初编报01版本 |
2023年 | 1200.00 |
2023年1季度 | 200.00 |
2023年4季度 | 300.00 |
集合1和集合2中均有期间维度[2023年],并且集合1中没有[2023年]的子项,所以对[2023年]进行下钻,[2023年]的子项有[2023年1季度]、[2023年2季度]、[2023年3季度]、[2023年4季度],对应的值分别为200、400、300、300。由于指定了numeric_value参数,所以将[2023年]的子项的值按照升序排列,结果为200、300、300、400。根据count的值,结果集中返回[2023年]和他子项中升序排列的前两项分别为[2023年1季度]和[2023年4季度]。
示例三
select DrilldownMemberBottom({[期间].[2023年]},{[期间].[2023年],[期间].[2023年].[2023年1季度]},2,,recursive) on rows, {[版本].&[50672]} on columns from [模型一]
where ([组织].&[50585],[场景].&[50685],[产品].&[50688],[科目].&[50215])
运行结果:
产品: 不分
场景: 累计预算
科目: 工资-管理费用合计
组织: 开发2部
期间 | 年初编报01版本 |
2023年 | 1200.00 |
2023年1季度 | 200.00 |
2023年1月 | 200.00 |
2023年2月 | -100.00 |
2023年2季度 | 400.00 |
集合1和集合2中均有期间维度[2023年],并且集合1中没有[2023年]的子项,所以对[2023年]进行下钻,[2023年]的子项有[2023年1季度]、[2023年2季度]、[2023年3季度]、[2023年4季度],由于指定了recursive参数,且集合2中有[2023年1季度],所以对[2023年1季度]下钻,[2023年1季度]的子项有[2023年1月]、[2023年2月]、[2023年3月]。根据count的值,结果集中返回[2023年]和他子项中前两项分别为[2023年1季度]和[2023年2季度]还有[2023年1季度]子项中的前两项[2023年1月]和[2023年2月]。
示例四
select DrilldownMemberBottom({[期间].[2023年]},{[期间].[2023年],[期间].[2023年].[2023年1季度]},2,[版本].&[50672],recursive) on rows, {[版本].&[50672]} on columns from [模型一]
where ([组织].&[50585],[场景].&[50685],[产品].&[50688],[科目].&[50215])
运行结果:
产品: 不分
场景: 累计预算
科目: 工资-管理费用合计
组织: 开发2部
期间 | 年初编报01版本 |
2023年 | 1200.00 |
2023年1季度 | 200.00 |
2023年2月 | -100.00 |
2023年3月 | 100.00 |
2023年4季度 | 300.00 |
集合1和集合2中均有期间维度[2023年],并且集合1中没有[2023年]的子项,所以对[2023年]进行下钻,[2023年]的子项有[2023年1季度]、[2023年2季度]、[2023年3季度]、[2023年4季度],对应的值分别为200、400、300、300。由于指定了numeric_value参数,所以将[2023年]的子项的值按照升序排列,结果为200、300、300、400。根据count的值,结果集中返回[2023年]和他子项中升序排列的前两项分别为[2023年1季度]和[2023年4季度]。 由于指定了recursive参数,且[2023年1季度]也在集合2中,所以对[2023年1季度]进行下钻,[2023年1季度]的子项有[2023年1月]、[2023年2月]、[2023年3月],对应的值分别为200、-100、100,升序排列后为-100、100、200,根据count的值,结果集中返回[2023年1季度]和他子项中升序排列的前两项分别为[2023年2月]和[2023年3月]。