1

従業員情報を含むファイルをベンダーに送信する SQR プログラムを作成しています。このファイルには、変数 $Code_1 $Code_2 $Code_3 ... を割り当てた多数のフィールドが含まれています。

各コードにはレートが関連付けられており、同様の変数 ($Rate_1、$Rate_2 など) を割り当てました。

列 EMPLID、JOBCODE、HURLY_RT を持つルックアップ テーブルがあります。すべてのコード/レートを取得するには、従業員ごとにループする必要があります。一部の従業員は、他の従業員よりも多い/少ない可能性があります。動的SQLのように、「動的」変数を持つことは可能ですか? たとえば、$Code_[$i]? 考えは、次のようなことをすることでした:

let #i = 1

begin-select
EC.JOBCODE
EC.HOURLY_RT

   let $Code_[$i] = &EC.JOBCODE
   let $Rate_[$i] = &EC.HOURLY_RT

   let #i = #i + 1
FROM PS_ACME_LOOKUP EC
WHERE EC.EMPLID = &J.EMPLID
end-select

これは機能しませんが、これを達成するための同様の (またはより良い) 方法があるかどうか疑問に思っています。カウンターの評価を行うことができると思います: when #i = 1, $Code_1 = ... when #i=2, $Code_2 =... しかし、もっと良い方法があることを願っています。

ありがとう

編集 - 明確にするために、従業員ごとに、これらの値 (入力されているかどうかにかかわらず) のフィールドを含む 1 行がファイルに書き込まれます。 ....$Rate_1 $Rate_2 $Rate_3

さらに明確にするために、参照テーブルには従業員ごとに複数の行があるため、テーブルは次のようになります。

EMPLID    JOBCODE    HOURLY_RT
0001      ABC        10.50
0001      DEF        9.75
0001      GHI        9.50

テーブルをループして変数を設定するとき、$Code_1 = 'ABC'、$Rate_1 = 10.50、$Code_2 = 'DEF'、Rate_2 = 9.75 などが必要です...

4

1 に答える 1