この章の情報は、ブロック・ストレージ・データベースのみに適用され、集約ストレージ・データベースとは関係がありません。
関連項目:
アウトラインに勘定科目タグが付けられた次元が含まれている場合は、@PTD関数を使用して期間累計値を計算できます。
この例では、次のように、Sample.Basicデータベースのメジャー次元のInventory分岐を使用します:
Inventory (~) (Label Only) Opening Inventory (+) (TB First) (Expense Reporting) IF(NOT @ISMBR(Jan)) Additions (~) (Expense Reporting) Ending Inventory (~) (TB Last) (Expense Reporting)
年および現在の四半期の期間累計値を計算するには、年次元に次の2つのメンバーを追加します: 四半期累計用のQTDおよび年次累計用のYTD。例:
QTD (~) @PTD(Apr:May) YTD (~) @PTD(Jan:May);
現在の月が5月(May)である場合、次の式をQTDメンバーに追加します:
@PTD(Apr:May);
@PTD(Jan:May);
Essbaseにより、月の範囲の値が適宜合計されます。ただし、期首在庫高(Opening Inventory)にはタイム・バランス・タグFirstがあり、期末在庫高(Ending Inventory)にはタイム・バランス・タグLastがあります。Essbaseでは、これらの値が別々に処理されます。期首、期末および平均の値の計算を参照してください。
表61は、Inventory分岐内のメンバーおよびSalesメンバーについての計算結果の例を示しています:
Opening InventoryにはFirstタグがあります。QTDの場合、Essbaseでは、当四半期内の最初の値であるAprが使用されます。YTDの場合、年の最初の値であるJanが使用されます。
Ending InventoryにはLastタグがあります。QTDの場合、Essbaseでは、当四半期内の最後の値であるMayが使用されます。YTDの場合、年の最後の値でもあるMayが使用されます。
注: | 動的時系列メンバーを使用して、期間累計値を計算することもできます。時系列データの計算。を参照してください。 |
@AVGRANGE関数を使用すれば、移動平均を計算できます。また、@ACCUM関数を使用すれば、移動による年次累計値を計算できます。
たとえば、データベースに、毎月のSalesのデータ値が含まれており、データベース・アウトラインに、メンバーAVG_SalesとYTD_Salesが登録されているとします。
@AVGRANGE(SKIPNONE, Sales, @CURRMBRRANGE(Year, LEV, 0, , 0));
@ACCUM(Sales);
Essbaseにより、時間のタグが付けられた次元内の各月のSales値の平均が計算されます。SKIPNONEパラメータは、#MISSING値を含むすべての値が含まれることを意味します。結果は、EssbaseによってAVG_Sales内に置かれます。#MISSING値の集計を参照してください。
表62は、Essbaseで累計売上の値が計算されてから、YTD_Sales内に結果が置かれる際の結果を示しています:
AVG_Salesの値は、月次累計の平均です。たとえば、AVG_Sales -> Marは1月、2月および3月の売上(Sales)の平均です。
YTD_Salesは当月までの値の累積値です。したがって、YTD_Sales -> FebはSales -> JanおよびSales -> Febの合計になります。
@PRIOR関数を使用すると、前月の値に基づいて値を計算できます。
たとえば、データベースに月次ベースで保管される資産のデータ値が含まれているとします。連続する月の資産値の差分(資産変動)は、当月の値から前月の値を減算することで計算できます。
データベースでは、次の3つのメンバーで資産値が管理されているものとします:
1月のAsset_MVNT値は、1月の値からOpening_Balance値を減算して算出されます。
IF(@ISMBR(Jan)) Asset_MVNT = Assets - Opening_Balance; ELSE Asset_MVNT = Assets - @PRIOR(Assets); ENDIF;
表63は、連続する月の資産値の差分を、Essbaseで計算した結果を示したものです:
データベース内の#MISSING値をテストできます。#MISSING値の集計を参照してください。
データベース・アウトラインにCommissionという名前のメンバーが含まれているとします。現在のメンバーの組合せのSalesの値が#MISSINGでない場合、売上高の10%の歩合(Commission)が支払われます。データベース・アウトライン内のCommissionメンバーに適用した場合、次の式で歩合が計算されます:
IF(Sales <> #MISSING) Commission = Sales * .1; ELSE Commission = #MISSING; ENDIF;
計算スクリプト内に式を記述する場合は、その式を次のようにCommissionメンバーと関連付ける必要があります:
Commission(IF(Sales <> #MISSING) Commission = Sales * .1; ELSE Commission = #MISSING; ENDIF;);
データベース内の属性次元メンバーに対して特定の計算を実行できます。属性データの計算を参照してください。
たとえば、オンス・サイズの製品のオンスごとの収益性を計算するには、計算式で@ATTRIBUTEVAL関数を使用します。Sample.Basicデータベースのメジャー次元のRatios分岐には、Profit per Ounceという名前のメンバーが含まれています。このメンバーに対する式は、次のとおりです:
Profit/@ATTRIBUTEVAL(@NAME(Ounces));
Essbaseでは、製品次元を循環して、次の計算が実行されます:
計算式での属性の使用を参照してください。@ATTRIBUTEVAL関数の詳細は、『Oracle Essbaseテクニカル・リファレンス』を参照してください。 |