カスタム メンバ式の操作

カスタム メンバ式と呼ばれる多次元式 (MDX) を定義すると、指定した属性のメンバに値を指定できます。データ ソース ビューからのテーブルの列は、属性のメンバごとに、そのメンバの値の指定に使用される式を提供します。

カスタム メンバ式により、メンバに関連付けられたセル値が判別され、メジャーの集計関数が上書きされます。カスタム メンバ式は、MDX で記述します。各カスタム メンバ式は、1 つのメンバに適用されます。カスタム メンバ式は、ディメンション テーブルまたはディメンション テーブルとの外部キー リレーションシップを持つ別のテーブルに格納されます。

属性の CustomRollupColumn プロパティは、属性のメンバのカスタム メンバ式が含まれている列を指定します。列の行が空の場合は、メンバのセル値は通常どおり返されます。列の式が有効でない場合は、メンバを使用するセル値が取得されるたびにランタイム エラーが発生します。

属性のカスタム メンバ式を指定する前に、属性が含まれているディメンション テーブル、つまり直接関連するテーブルに、カスタム メンバ式を保存するための文字列型の列があることを確認してください。この場合、属性に CustomRollupColumn プロパティを手動で設定するか、またはビジネス インテリジェンス ウィザードのカスタム メンバ式の設定拡張機能を使用して、属性にカスタム メンバ式を有効にします。この拡張機能の使用方法については、「ディメンションの属性に対するカスタム メンバ式の設定」を参照してください。

カスタム メンバ式の評価

カスタム メンバ式は、計算されるメンバとは異なります。カスタム メンバ式は、ディメンション テーブルに存在しているメンバに適用され、メンバの値のみを提供します。これに対して、計算されるメンバはディメンション テーブルに格納されず、ディメンションまたは階層に含まれている他のメンバのデータとメタデータの両方を定義します。

カスタム メンバ式は、メジャーに関連付けられている集計関数より優先されます。たとえば、カスタム メンバ式を指定する前に、時間ディメンションの以下のメンバについて、Sum 集計関数を使用するメジャーが次の値であるとします。

  • 2003: 2100

    • Quarter 1: 700

    • Quarter 2: 500

    • Quarter 3: 100

    • Quarter 4: 800

  • 2004: 1500

    • Quarter 1: 600

    • Quarter 2: 200

    • Quarter 3: 300

    • Quarter 4: 400

カスタム メンバ式を使用すると、メンバの値は代わりにカスタム ロールアップ式によって指定されます。たとえば、次のカスタム メンバ式を使用すると、時間ディメンションの 2004 メンバの Quarter 4 子メンバの値を 450 に指定できます。

Time.[Quarter 3] * 1.5

カスタム メンバ式は、ディメンション テーブルの列に格納されます。属性の CustomRollupColumn プロパティを設定して、カスタム ロールアップ式を有効にします。

1 つの MDX 式を属性のすべてのメンバに適用するには、MDX 式をリテラル文字列として返すディメンション テーブルで名前付き計算を作成します。次に、名前付き計算を、構成する属性の CustomRollupColumn プロパティ設定で指定します。名前付き計算は、SQL 式によって定義される行の値を返す、データ ソース ビュー テーブルの列です。名前付き計算の作成方法の詳細については、「データ ソース ビューでの名前付き計算の定義 (Analysis Services)」を参照してください。

注意注意

特定の属性に基づいているすべてのレベルのメンバではなく、特定のレベルのメンバに MDX 式を適用するには、レベルの MDX スクリプトとして式を定義できます。詳細については、「MDX スクリプティングの基礎 (MDX)」を参照してください。

計算されるメンバと属性のメンバのカスタム ロールアップ式の両方を使用する場合は、評価の順序に注意してください。計算されるメンバは、カスタム ロールアップ式が解決される前に解決されます。