差結合ビューの作成

差結合ビューは、1 番目の入力ビューのすべての行を選択し、2 番目のビューにある行を結果から削除します。差結合ビューに 3 番目の入力ビューを指定している場合、そのビューにある行も結果から削除されます。差結合ビューには、複数の入力ビューを指定できます。それらの各ビューが、互いに異なるデータベースに属していてもかまいません。

たとえば、以下の内容を持つ 3 つのビューがあるとします。

View_A

A

B

1

a

2

b

4

d

View_B

A

B

1

a

5

e

6

f

View_C

A

B

2

b

5

e

6

f

View_AView_B 、および View_C から差結合ビューを作成して、この新しいビューに対してクエリを実行すると、まずクエリ View_A minus View_B が実行され、以下の結果が得られます。

View A Minus View B

A

B

2

b

4

d

View_A の 1 番目の行が View_B に存在するので、この行は結果から削除されます。

次に、 <first intermediate result> minus View_C が実行されます。

このビュー View A Minus View B Minus View C に対してクエリを実行すると、以下の結果が得られます。

View A Minus View B Minus View C

A

B

4

d

View_A の 2 番目の行が結果から削除されていることがわかりますが、これは View_C にもこの行が存在しているからです。

新しい差結合ビューを作成するウィザードは、和結合ビューのウィザードとほとんど同じです (「 和結合ビューの作成 」を参照)。

差結合ビューを作成するには、[File] > [New] メニューで [Minus] をクリックするか、[Server Explorer] で右クリックして [New] メニューで [Minus] をクリックします。

[Minus view] ダイアログが開き、[Server Explorer] で現在選択している 1 つまたは複数のビューが追加されます。さらにビューを追加するには、[Model] タブをクリックして、追加するビューを [Server Explorer] からこのタブにドラッグします。

重要

差結合ビューのすべての入力ビューは、フィールド数が同じであることが必要です。

[Minus view] ダイアログには、以下の 6 つのタブがあります。

  1. Model: 新しい差結合ビューの入力ビューをこのタブにドラッグして、それらのビューのフィールドを関連付けます。同じ名前のフィールドはウィザードによって自動的に関連付けられますが、それ以外のフィールドは手動で関連付ける必要があります。

    入力ビューの すべて のフィールド間にアソシエーションを追加する必要があります。

    [View order] ボックスで、差結合操作の実行順序を指定する必要があります。ビューの順序によって、ビューの結果が異なることがあります。

    たとえば、ビューの順序が View_a \ View_b \ View_c であれば、まず View_aView_b の差結合が実行され、その中間結果と View_c の差結合が実行されます。

    ビューの順序が View_c \ View_b \ View_a であれば、まず View_cView_b の差結合が実行され、その中間結果と View_a の差結合が実行されます。どちらの「ビューの順序」でも、関係するビューは同じですが、操作結果は異なることがあります。

    このタブで、「ビューパラメータ」を追加できます。ビューパラメータの説明と、これを使用するために必要なルールについては、「 派生ビューのパラメータ 」を参照してください。

  2. Associations: フィールド間のアソシエーションのリストが表示されます。 image0 をクリックすると、アソシエーションを削除できます。

  3. Where Conditions: ビューの定義に WHERE 条件を追加できます。

  4. Group By: ビューに GROUP BY 属性を追加できます。

  5. Output: ビューの出力を構成できます。具体的には、ビューとそのフィールドの名前の変更、派生属性の追加などができます。

  6. Metadata: 新しいビューの格納先フォルダと説明を定義できます。

[Where Conditions]、[Group By]、[Output]、および [Metadata] の各タブの動作は [Union view] ダイアログの場合と同じです (「 和結合ビューの作成 」を参照)。

Creating a minus view with three input views

3 つの入力ビューからの差結合ビューの作成