- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:マッチング処理(1:N))
マッチング処理(1:N)でうまくいかない場合の対処方法は?
このQ&Aのポイント
- マッチング処理(1:N)をcobol(easy)で実装していますが、ファイル内に重複があり結果がうまくいきません。大小比較ではうまくいかないため、(=と^=)でマッチングする方法を教えてください。
- 初期リード(マスタ、トラン)の後において、key1 < key2の場合はマスタ出力し、マスタ読み込みを行い、key1 > key2の場合はトラン出力し、トラン読み込みを行います。key1 = key2の場合はkey1とkey2が一致するまでループし、マスタリードとトランリードを行います。
- 変更前のマスタと変更後のトランのデータを比較すると、0002と0003のレコードが変更され、0005が追加されています。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
ロジックのアドバイスということで! 修正されていないであろう読み込んだマスタで、新たなコピー区を作成!それが、1対Nの1ということですね? N個あるファイルとマッチングをする際の記述例は、あらかじめ処理を定義しておくのです。 PERFORM UNTIL key1 ^= 999999 AND key2 ^= 99999 IF key1 > key2 PERFORM A IF key1 < key2 PERFORM B IF key1 = key2 PERFORM C END PERFORM. 大小(=,<,>)比較で条件分岐が発生するわけですから、自ずから違う処理も発生するハズかと思われます。はじき出すデータを確保する場所も、異なるでしょうし。
お礼
ありがとうございます データがJCLでキーの比較(<>=)できないので 一度テーブルを作って =とnot =で判定したら結果でました。最後の レコード(// )がうまくいきませんが 影響はないのでなんとかなりそうです。 ありがとうございました。