在多维表达式 (MDX) 中,下列语句用于管理 MDX 脚本中的上下文、做用域和流控制。编码
主题 | 说明 |
calculate语句 | 计算子多维数据集,还能够肯定子多维数据集中所包含的求解次序 |
case语句 | 容许有条件地从屡次比较中返回特定值 |
existing关键字 | 强制在当前上下文中计算所指定的集 |
freeze语句 | 将所指定子多维数据集的单元值锁定为其当前值 |
if语句 | 若是条件为真,则执行语句 |
scope语句 | 将指定MDX语句的做用域限制于指定的子多维数据集 |
示例:作用域
假设有一组指标:本来指标的“Act”、“QOF”和“AOP”值,就是这些度量值自己的Sum。it
可是对于某个维度指标“服务组滚动离职率”来讲,这三个度量值的计算公式则是“服务组滚动离职人数”(指标编码为205)/ 服务组平均在职人数(指标编码为24)。
如今使用Scope脚本实现上述功能:io
scopetable
(ast
{语法
[Measures].[KPI Act]引用
,[Measures].[KPI Q0F]im
,[Measures].[KPI AOP]ember
,[Measures].[Forcast]
}
)
[KPI].[KPI Hierarchy].[KPI].&[209]=iif
(
[KPI].[KPI Hierarchy].[KPI].&[24]=0
,null
,[KPI].[KPI Hierarchy].[KPI].&[205]/[KPI].[KPI Hierarchy].[KPI].&[24]
)
end scope
这样,若是将来使用指标“服务组滚动离职率”的“Act”等值的时候,其数值不是直接引用“Act”字段的值,而是上述计算公式计算之后获得的值。
附:脚本语法
Subcube_Expression ::=(Auxiliary_Subcube [, Auxiliary_Subcube,...n])
Auxiliary_Subcube ::=
Limited_Set
| Root([dimension_name])
| Leaves([dimension_name])
Limited_Set ::= single_tuple | member | Common_Grain_Members | hierarchy.members | level.members | {} | Descendants ( Member , [level [ , SELF | AFTER | BEFORE | SELF_AND_AFTER | SELF_AND_BEFORE | SELF_BEFORE_AFTER | LEAVES ] ) [* <limited set>]