毎月の資産変動の計算
@PRIOR関数を使用すると、前月の値に基づいて値を計算できます。
たとえば、データベースに月次ベースで保管される資産のデータ値が含まれているとします。連続する月の資産値の差分(資産変動)は、当月の値から前月の値を減算することで計算できます。
データベースでは、次の3つのメンバーで資産値が管理されているものとします。
-
毎月の資産値を表すAssets
-
資産変動値を表すAsset_MVNT
-
年初の資産値を表すOpening_Balance
JanのAsset_MVNTの値は、Janの値からOpening_Balanceの値を減算して計算されます。
次の式をAsset_MVNTメンバーに追加します。
IF(@ISMBR(Jan)) Asset_MVNT = Assets - Opening_Balance;
ELSE Asset_MVNT = Assets - @PRIOR(Assets);
ENDIF;
次の表は、Essbaseで連続する月の資産の値の差分が計算される場合の結果を示しています。
表18-3 結果: 毎月の資産変動を計算するための計算スクリプト例
Assets -> Time | Opening_Balance | Jan | Feb | Mar |
---|---|---|---|---|
Assets |
1200 |
1400 |
1300 |
1800 |
Asset_MVNT |
200 |
-100 |
500 |
Essbaseは月ごとに次の計算を逐次実行します。
-
IF文と@ISMBR関数で、Yearディメンションの現在のメンバーがJanであるかどうかが確認されます。JanのAsset_MVNTの値は、前月の値を減算して計算できないため、このチェックが必要になります。
-
Yearディメンション現在のメンバーがJanである場合、Essbaseで、Jan -> Assetsの値からOpening_Balanceが減算され、結果がJan -> Asset_MVNTに置かれます。
-
Yearディメンション現在のメンバーがJanでない場合、@PRIOR関数で前月の資産の値が取得されます。Essbaseにより、現在の月の資産から前月の資産が減算されます。現在の月のAsset_MVNTの値に結果が置かれます。