• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:マッチング処理(1:N))

マッチング処理(1:N)でうまくいかない場合の対処方法は?

このQ&Aのポイント
  • マッチング処理(1:N)をcobol(easy)で実装していますが、ファイル内に重複があり結果がうまくいきません。大小比較ではうまくいかないため、(=と^=)でマッチングする方法を教えてください。
  • 初期リード(マスタ、トラン)の後において、key1 < key2の場合はマスタ出力し、マスタ読み込みを行い、key1 > key2の場合はトラン出力し、トラン読み込みを行います。key1 = key2の場合はkey1とkey2が一致するまでループし、マスタリードとトランリードを行います。
  • 変更前のマスタと変更後のトランのデータを比較すると、0002と0003のレコードが変更され、0005が追加されています。

質問者が選んだベストアンサー

  • ベストアンサー
  • skbler
  • ベストアンサー率9% (69/691)
回答No.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. 大小(=,<,>)比較で条件分岐が発生するわけですから、自ずから違う処理も発生するハズかと思われます。はじき出すデータを確保する場所も、異なるでしょうし。

deaimax
質問者

お礼

ありがとうございます データがJCLでキーの比較(<>=)できないので 一度テーブルを作って =とnot =で判定したら結果でました。最後の レコード(// )がうまくいきませんが 影響はないのでなんとかなりそうです。 ありがとうございました。

関連するQ&A