アプリ版:「スタンプのみでお礼する」機能のリリースについて

はじめまして。cobol(easy)でマッチングしたいのですが、うまくいきません.jclデータなので
ファイル内に重複はあります(ソートしても結果うまくいかず)

下記のようにPGしてます。
マスタは修正はいることはないので
1:N N:1マッチングです。
大小(=,<,>)比較ではうまくいかないので
(=と^=)でマッチングしないとだめでしょうか?

cobol、vbaの命令でも意味わかりますので
ロジックのアドバイスいただけないでしょうか?
よろしくお願いします。


======PG===========

初期リード(マスタ、トラン)

メイン処理
do key1 ^= 999999 and key2 ^= 99999
key1 < key2(マスタ:トラン)
マスタ出力
マスタ読み込み
key1 > key2(マスタ:トラン)
トラン出力
トラン読み込み
key1 = key2(マスタ:トラン)
do key1 = key2 ← key1 not key2 で抜ける
マスタリード
end-do
トランリード
end-do
=======データ===========
変更前(マスタ)
0001 //d0001 dd ssssssssss
0002 //dddd2 dd dddddddddd
0003 //d00003 dd 1111111111
0004 //d55454 dd 4444444444
--------------------------------
変更後(トラン)
0001 //d0001 dd ssssssssss
0002 //dddd33 dd aaaaaaaa
0003 //d00099 dd 88888888
0005 //dd0000 dd 444444444
結果
--------------------------------------
0002,0003のレコードは変更されている
0005は追加されている

A 回答 (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.


大小(=,<,>)比較で条件分岐が発生するわけですから、自ずから違う処理も発生するハズかと思われます。はじき出すデータを確保する場所も、異なるでしょうし。
    • good
    • 0
この回答へのお礼

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

お礼日時:2006/07/15 23:02

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!