在多維表達式 (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>]