単項演算子の使用

MicrosoftSQL ServerAnalysis Services の親子リレーションシップを含んでいるディメンションでは、親属性のすべての計算されないメンバにカスタム ロールアップを指定する、単項 (またはカスタム ロールアップ) 演算子列を指定します。単項演算子は、親メンバの値が評価されるたびにメンバに適用されます。親属性 (Usage=Parent) の UnaryOperatorColumn は、単項演算子を含んでいるテーブル列をデータ ソース ビューで指定します。この列に格納されるカスタム ロールアップ演算子の値は、属性の各メンバに適用されます。

データ ソース ビューでは、ディメンション テーブルの名前付き計算を作成し、単項演算子列として指定できます。"+" などの単純な式は、すべてのメンバに関して同じ演算子を返します。ただし、すべてのメンバに関して 1 つの演算子を返す式に限り、使用できます。

UnaryOperatorColumn プロパティの設定は親属性で手動で変更することも、ビジネス インテリジェンス ウィザードの [単項演算子の指定] 拡張機能を使用して、ディメンションのメンバに関連付けられている既定の集計を置き換えることもできます。ビジネス インテリジェンス ウィザードを使用してこの構成を実行する方法の詳細については、「ディメンションへのカスタム集計の追加」を参照してください。

親属性の UnaryOperatorColumn プロパティに対する既定の設定は (none) で、カスタム ロールアップ演算子を無効にします。次の表は、単項演算子と、レベルに適用された場合の動作を示しています。

単項演算子

説明

+ (正符号)

メンバの値は、そのメンバの前に出現した兄弟メンバの集計値に加算されます。これは、単項演算子列が属性に対して定義されていない場合の既定の演算子です。

- (負符号)

メンバの値は、そのメンバの前に出現した兄弟メンバの集計値から減算されます。

* (アスタリスク)

メンバの値は、そのメンバの前に出現した兄弟メンバの集計値で乗算されます。

/ (スラッシュ)

メンバの値は、そのメンバの前に出現した兄弟メンバの集計値で除算されます。

~ (チルダ)

メンバの値は無視されます。

空白の値や、テーブル内で見つからないその他の値は、正符号 (+) 単項演算子と同様に扱われます。演算子には優先順位がないため、単項演算子列に格納されたメンバの順序により評価の順序が決定されます。評価の順序を変更するには、新しい属性を作成し、その Type プロパティを Sequence に設定し、評価順序に対応するシーケンス番号を Source Column プロパティで割り当てます。また、その属性に基づいて属性のメンバの順序を指定する必要もあります。ビジネス インテリジェンス ウィザードを使用して属性のメンバの順序を指定する方法の詳細については、「ディメンションの順序の指定」を参照してください。

UnaryOperatorColumn プロパティを使用すると、単項演算子を返す名前付き計算を属性の全メンバのリテラル文字として指定できます。これは、名前付き計算で '*' などのリテラル文字を入力するだけで指定できる場合もあります。この場合は、属性のすべてのメンバについて、既定の演算子の正符号 (+) が乗算演算子のアスタリスク (*) で置換されます。詳細については、「データ ソース ビューでの名前付き計算の定義 (Analysis Services)」を参照してください。

ディメンション デザイナの [ブラウザ] タブでは、階層内の各メンバの隣に単項演算子を表示できます。書き込み許可ディメンションを使用する場合は、単項演算子を変更することもできます。ディメンションが書き込み可能でない場合は、データ ソースを直接変更するためのツールを使用する必要があります。