2 つのテーブルでの LOOKUP

2 つのテーブルが検索で使用された場合に、実際に検索されるのは 1 つだけです。 検索条件 (高、底、等) が満たされた時には、対応する要素が使用可能になりま す。

演算項目 1 には検索引数が含まれ、演算項目 2 には検索するテーブルの名前が含 まれていなければなりません。 結果のフィールドは、使用可能にしたいデータが入っているもう 1 つのテーブル の名前を示していなければなりません。 結果の標識も使用する必要があります。 必要な場合には、制御レベルおよび条件付け標識を 7 から 11 桁目に指定すること ができます。

使用される 2 つのテーブルは、項目数が同じでなければなりません。 検索される テーブルに 2 番目のテーブルより多くの要素が含まれている場合には、検索条件 を満たすことは可能です。 しかし、2 番目のテーブルには、検索テーブルで見付 かった要素と対応する要素はない場合があります。 望ましくない結果が起こることがあります。

注:
正常な LOOKUP が行われる前に LOOKUP 以外の命令にテーブル名を指定し た場合には、テーブルはその最初の要素に設定されます。

図 78. 等しい項目の検索
*...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