前回の記事はこちら:
【PBCS】ASO(集約ストレージ・オプション)- MDX式の利用その②
主な変換例
(5) IsUDA
・UDAのチェック を行う
(例)Accountのカレントメンバーが「UDA001」に紐づけられている場合:4月の値
上記以外の場合:3月~5月の合算値
IIF(IsUda([Account].CurrentMember,"UDA001"),
[Apr],[Mar]+[Apr]+[May]
)
(6) Lag
・n世代(nレベル)前のメンバーを返す(≒@PRIOR)
member.Lag (
n
[,
世代orレベル
] [,
hierarchy
] )
・メンバー式の場合(例:前年実績データの取得)
@PRIOR("Actual",1,@CHILDREN("Years"));
・MDXに変換するとこうなる
(Years.CurrentMember.Lag(1, LEVEL), [Actual]).Value
(7) Round
Round ( numeric_value_expression, index )
numeric_value_expression:数値式
index:丸め桁数
・数値式が指定された桁数に丸められる(四捨五入)
・反対に、値を切り捨てしたい場合は「Truncate」を使用する
BSOの場合
@ROUND("Member1"*100,2);
ASOの場合
ROUND([Member1]*100,2)
(8) Truncate
Truncate ( numeric_value_expression )
numeric_value_expression:数値式
BSOの場合
@TRUNCATE(-8.12)
戻り値:-8
ASOの場合
Truncate(-8.12)
戻り値:-8