突き合わせレコードの処理
2 つ以上のファイルのレコードの突き合わせは、以下の方法で処理されます。
- 1 次ファイルのレコードと 2 次ファイルのレコードが 一致した場合には、常に 1 次ファイルが先に処理されます。 その後で 、一致した 2 次ファイルが処理されます。 選択されたばかりのレコー ド・タイプを識別するレコード識別標識は、レコードが処理される時点でオンに なっています。 この標識は、行われる処理のタイプを制御するためによく使用されます。
- 昇順ファイルのレコードが一致しない場合には、常に突き合わせフィールドの内 容が最低のレコードが先に処理されます。 降順ファイルのレコードが一致しない 場合には、常に突き合わせフィールドの内容が最高のレコードが先に処理されます。
- 突き合わせフィールドの指定のないレコードは、前のレコードの直後に続けて処 理されます。 MR 標識はオフになっています。 このレコード・タイプがファイル中の最初のもの である場合には、1 次ファイルの中のものでなくても先に処理されま す。
- レコードの突き合わせによって、1 次レコードは一致した 2 次レコードの前に処理されるので、1 次レコードからのデータをそ の一致した 2 次レコードに入れることができます。 しかし、2 次レコード から一致した 1 次レコードへのデー タの転送は、先読みフィールドが指定されている場合にだけ実行することができ ます。
図 1 および 図 2 は、3 つのファイルから レコードがどのように処理のために選択されるかを示しています。
図 1. 3 つのディスク・ファイルからレコードを選択する通常の方法

上記の 3 つのディスク・ファイルのレコードは太字で示した順序で選択されます。
| サイクル | 処理されるファイル | オンになる標識 | 標識が設定される理由 |
|---|---|---|---|
| 1 | 1 次 | 02 | 突き合わせフィールドの指定がない |
| 2 | 1 次 | 02 | 突き合わせフィールドの指定がない |
| 3 | 最初の 2 次 | 04 | 突き合わせフィールドの指定がない |
| 4 | 2 番目の 2 次 | 05 | 2 番目の 2 次が低く、1 次と一致しない |
| 5 | 1 次 | 01、MR | 1 次が最初の 2 次と一致する |
| 6 | 1 次 | 01、MR | 1 次が最初の 2 次と一致する |
| 7 | 最初の 2 次 | 03、MR | 最初の 2 次が 1 次と一致する |
| 8 | 最初の 2 次 | 03 | 最初の 2 次が低く、1 次と一致しない |
| 9 | 最初の 2 次 | 03 | 最初の 2 次が低く、1 次と一致しない |
| 10 | 2 番目の 2 次 | 05 | 2 番目の 2 次が低く、1 次と一致しない |
| 11 | 1 次 | 01 | 1 次が低く、2 次と一致しない |
| 12 | 1 次 | 01、MR | 1 次が 2 番目の 2 次と一致する |
| 13 | 1 次 | 02 | 突き合わせフィールドの指定がない |
| 14 | 2 番目の 2 次 | 05、MR | 2 番目の 2 次が 1 次と一致する |
| 15 | 2 番目の 2 次 | 05、MR | 2 番目の 2 次が 1 次と一致する |
| 16 | 2 番目の 2 次 | 06 | 突き合わせフィールドの指定がない |
| 17 | 1 次 | 01、MR | 1 次が両方の 2 次ファイルと一致する |
| 18 | 最初の 2 次 | 03、MR | 最初の 2 次が 1 次と一致する |
| 19 | 最初の 2 次 | 04 | 突き合わせフィールドの指定がない |
| 20 | 2 番目の 2 次 | 05、MR | 2 番目の 2 次が 1 次と一致する |
| 21 | 最初の 2 次 | 03 | 最初の 2 次が低く、1 次と一致しない |
| 22 | 1 次 | 01、MR | 1 次が両方の 2 次ファイルと一致する |
| 23 | 最初の 2 次 | 03、MR | 最初の 2 次が 1 次と一致する |
| 24 | 最初の 2 次 | 02、MR | 最初の 2 次が 1 次と一致する |
| 25 | 2 番目の 2 次 | 05、MR | 2 番目の 2 次が 1 次と一致する |
| 26 | 2 番目の 2 次 | 05、MR | 2 番目の 2 次が 1 次と一致する |
図 2. 3 つのディスク・ファイルからレコードを選択する通常の方法 - パート 1

図 3. 3 つのディスク・ファイルからレコードを選択する通常の方法 - パート 2
