INTERSECTION
INTERSECTION ( set1 ; set2 ; resultSet )
引数 | 型 | 説明 | |
---|---|---|---|
set1 | Text | → | 最初のセット |
set2 | Text | → | 2番目のセット |
resultSet | Text | → | 結果のセット |
説明
INTERSECTIONコマンドは、set1とset2を比較し、set1とset2の両方に存在するレコードだけを選択します。下表に、INTERSECTIONコマンドの処理で考えられるすべての組み合わせを示します。
Set1 | Set2 | Result Set |
---|---|---|
Yes | No | No |
Yes | Yes | Yes |
No | Yes | No |
No | No | No |
以下の図に、集合交差演算の処理結果を図で示します。塗りつぶした部分が結果のセットです。
resultSetはINTERSECTIONコマンドで作成されます。 resultSetと同じ名前のセット (set1とset2も含めて) が既に存在する場合はresultSetに置き換わります。set1とset2は同じテーブルに属していなければなりません。resultSetもset1とset2と同じテーブルに属します。set1とset2両方に同じカレントレコードが設定されている場合、そのカレントレコードはresultSetに保持されます。カレントレコードが異なる場合、resultSetはカレントレコードを保持しません。
4D Server: クライアント/サーバモードにおいて、セットはタイプ (インタープロセス、プロセスおよびローカル) およびそれらがどこで作成されたか (サーバまたはクライアント) によって、アクセス可能かどうかが決定されます。INTERSECTIONでは3つのセットが同じマシン上でアクセスできる必要があります。詳細は4D Server Referenceマニュアルの4D Server: セットと命名セレクションに関する説明を参照してください。
例題
以下の例は、“Joe”と“Abby”という2人の販売担当者が重複して担当する顧客を検索します。販売担当者は、各自の顧客を表すセット“Joe”と“Abby”を持っています。
INTERSECTION("Joe";"Abby";"Both") // 両方の顧客のセットを作成する
USE SET("Both") // セットを使う
CLEAR SET("Both") // セットを消去、ただし他は残す
DISPLAY SELECTION([Customers]) // 両方が担当する顧客を表示