2 つのテーブルでの LOOKUP
2 つのテーブルが検索で使用された場合に、実際に検索されるのは 1 つだけです。 検索条件 (高い、低い、等しい) が満たされた時には、対応する要素が使用可能になりま す。
演算項目 1 には検索引数が含まれ、演算項目 2 には検索するテーブルの名前が含 まれていなければなりません。 結果のフィールドは、データも使用可能になっているテーブル の名前を示していなければなりません。 結果の標識も使用する必要があります。 必要な場合には、制御レベルおよび条件付け標識を 7 から 11 桁目に指定すること ができます。
使用される 2 つのテーブルは、項目数が同じでなければなりません。 検索される
テーブルに 2 番目のテーブルより多くの要素が含まれている場合には、検索条件
を満たすことは可能です。 しかし、2 番目のテーブルには、検索テーブルで見付
かった要素と対応する要素はない場合があります。
望ましくない結果が起こることがあります。
注: 正常な LOOKUP が行われる前に LOOKUP 以外の命令にテーブル名を指定し
た場合には、テーブルはその最初の要素に設定されます。
図 1. 等しい項目の検索
*...1....+....2....+....3....+....4....+....5....+....6....+....7...
CL0N01Factor1+++++++Opcode(E)+Factor2+++++++Result++++++++Len++D+HiLoEq..
C* The LOOKUP operation searches TABEMP for an entry that is equal to
C* the contents of the field named EMPNUM. If an equal entry is
C* found in TABEMP, indicator 09 is set on, and the TABEMP entry and
C* its related entry in TABPAY are made the current elements.
C EMPNUM LOOKUP TABEMP TABPAY 09
C* If indicator 09 is set on, the contents of the field named
C* HRSWKD are multiplied by the value of the current element of
C* TABPAY.
C IF *IN09
C HRSWKD MULT(H) TABPAY AMT 6 2
C ENDIF