Я хотел бы объяснить мой сценарий, используя пример кода ниже,
Два файла необходимо объединить с помощью acct # с использованием JOINKEYS, но в file1 acct # существует в позиции: 33, но в file2acct # существует в позиции: 1 или 2 зависит от символа 'C' в позиции: 1.Другими словами, если char 'C' существует в позиции: 1, тогда мы должны рассмотреть acct # from position: 2, в противном случае рассмотрим acct # from position: 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
/*