別のテーブルの別のフィールドからテーブルのフィールドを更新しようとしています。
更新中のテーブルには、他のテーブルの 1 つの一致から更新する必要がある複数のレコードがあります。
例として、100 万行の販売履歴ファイルがあります。これらの 100 万件のレコードには約 40,000 の異なる SKU コードがあり、各行には日付と時刻のスタンプがあります。各 SKU には複数のレコードがあります。
MATCOST (材料費) という新しいフィールドを追加しました。
SKU と MATCOST を含む 2 番目のテーブルがあります。
したがって、表 1 のすべての行に、表 2 の対応する SKU の MATCOST をスタンプしたいと考えています。1対1の関係ではない場合、これを達成できないようです。
これは私が試したことです:
update
aulsprx3/cogtest2
set
matcost = (select Matcost from queryfiles/coskitscog where
aulsprx3/cogtest2.item99 = queryfiles/coskitscog.ITEM )
where
aulsprx3/cogtest2.item99=queryfiles/coskitscog.ITEM
ただし、SQL エラーが発生します: 列修飾子またはテーブル COSKITSCOG が定義されておらず、queryfiles/coskitscog.Item への最後の参照で q を強調表示しています
何か案は ?
よろしくお願いします
アダム
更新: これは私のテーブルが原則としてどのように見えるかです。1 テーブルには販売データが含まれ、もう 1 つのテーブルには販売されたアイテムの MATCOSTS が含まれます。COSKITCOG テーブルのデータで Sales Data テーブル (COGTEST2) を更新する必要があります。1対1の関係ではないため、合体ステートメントを使用できません。使用するほとんどの選択関数は、複数選択のエラーになります。一致する唯一のフィールドは Item=Item99 です
複数を一致させる方法が見つかりません。この例では、3 つの SQL ステートメントを使用し、アイテム コードのみを指定する必要があります。しかしライブでは、約 40,000 のアイテム コードと 100 万を超える販売データ レコードを更新する必要があります。SQL でできない場合は、RPG プログラムで記述してみる必要があると思いますが、それは今のところ私を超えています。
ご協力いただきありがとうございます。