ParallelPeriod
返回维度在指定层级中根据维度成员顺序,向前移动指定位数后的维度成员。
语法
PARALLELPERIOD( [level [ ,index [ ,member ] ] ] )
参数
level | 指定了level,筛选出member在指定层级的祖先。 |
index | (可选)指前推的偏移量,偏移量的单位与level有关,index不指定则为1。 |
备注
member的级别不能大于level指定的级别。
示例一
select {ParallelPeriod([期间].[LEVEL1],1,[期间].[2023年].[2023年2季度].[2023年6月])} on rows, {[版本].&[50672]} on columns from [模型一]
where ([组织].&[50585],[场景].&[50685],[产品].&[50688],[科目].&[50221])
运行结果:
产品 : 不分
场景 : 累计预算
科目 : 差旅费
组织 : 开发2部
期间 | 年初编报01版本 |
2023年3月 | 700.00 |
由于指定了level为[LEVEL1],member为[2023年6月],index为1,所以会先找[2023年6月]在[LEVEL1]级别的父项为[2023年2季度],由于index为1,所以找[2023年2季度]前一个维度成员为[2023年1季度],由于[2023年6月]为[2023年2季度]中第3个子项,所以找[2023年1季度]的第3个子项为[2023年3月],所以最后返回[2023年3月]的值700。
示例二
with member [科目].[x] as (ParallelPeriod([期间].[LEVEL1],1),[科目].&[50221])
select {[科目].[x]} on rows, {[版本].&[50672]} on columns from [模型一]
where ([组织].&[50585],[场景].&[50685],[产品].&[50688],[期间].[2023年].[2023年2季度].[2023年6月])
运行结果:
产品 : 不分
场景 : 累计预算
期间 : 2023年6月
组织 : 开发2部
科目 | 年初编报01版本 |
x | 700.00 |
指定了level为[LEVEL1],index为1,示例一指定的member放在where后面,为[2023年6月],所以会先找[2023年6月]在[LEVEL1]级别的父项为[2023年2季度],由于index为1,所以找[2023年2季度]前一个维度成员为[2023年1季度],由于[2023年6月]为[2023年2季度]中第3个子项,所以找[2023年1季度]的第3个子项为[2023年3月],所以最后返回[2023年3月]的值700。
示例三
with member [科目].[x] as (ParallelPeriod([期间].[LEVEL1]),[科目].&[50221])
select {[科目].[x]} on rows, {[版本].&[50672]} on columns from [模型一]
where ([组织].&[50585],[场景].&[50685],[产品].&[50688],[期间].[2023年].[2023年2季度].[2023年6月])
运行结果:
产品 : 不分
场景 : 累计预算
期间 : 2023年6月
组织 : 开发2部
科目 | 年初编报01版本 |
x | 700.00 |
指定了level为[LEVEL1],示例一指定的member放在where后面,为[2023年6月],index未指定默认为1,所以会先找[2023年6月]在[LEVEL1]级别的父项为[2023年2季度],由于index为1,所以找[2023年2季度]前一个维度成员为[2023年1季度],由于[2023年6月]为[2023年2季度]中第3个子项,所以找[2023年1季度]的第3个子项为[2023年3月],所以最后返回[2023年3月]的值700。