以下のサンプルコードを使用してシナリオを説明したいと思います。
JOINKEYS を使用して acct# によって 2 つのファイルを結合する必要がありますが、ファイル 1 では acct# は位置:33 に存在しますが、ファイル 2 では位置:1 または位置 2 のいずれかに acct# が存在し、位置:1 の char 'C' に依存します。つまり、char 'C' が position:1 に存在する場合、position:2 からの acct# を考慮する必要があります。そうでない場合は、position:1 からの acct# を考慮します。これらすべてを 1 つのステップで実行したいと考えています。
私の要件を明確にしたことを願っています。あなたのソリューションに感謝します。
//STEP010 EXEC PGM=SORT,
// REGION=4096K
//SYSPRINT DD SYSOUT=*
//SYSLIST DD SYSOUT=*
//SYSTOTAL DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//*
//SORTIN DD DUMMY
//*
//SORTJNF1 DD *
1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA|3785253347100
2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA|3785253368600
8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA|3725826154600
9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA|3725817782600
1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA|3785253347122
/*
//*
//SORTJNF2 DD *
C3785253347100
C3785253368600
3725826154600
3725817782600
//SORTOUT DD SYSOUT=*
//JNF2CNTL DD *
INCLUDE COND=(1,1,CH,EQ,C'C'),
INREC BUILD=(1,13)
/*
//*
//SYSIN DD *
JOINKEYS FILES=F1,FIELDS=(33,13,A)
JOINKEYS FILES=F2,FIELDS=(01,13,A)
JOIN UNPAIRED,F1
REFORMAT FIELDS=(F1:01,45,F2:01,13),FILL=C'$'
SORT FIELDS=COPY
/*