Skolusu
Senior Member
Joined: 07 Dec 2007 Posts: 2205 Location: San Jose
|
|
|
|
Use the following DFSORT JCL which will give you the desired results. I assumed your input is already sorted on the matching key.
The values will be padded next to each other but if you are missing a value then it will have binary zeroes
Code: |
//STEP0100 EXEC PGM=SORT
//SYSOUT DD SYSOUT=*
//INA DD *
11 A
11 B
11 C
12 D
12 E
13 F
14 G
//INB DD *
11
12
13
//SORTOUT DD SYSOUT=*
//SYSIN DD *
OPTION COPY
JOINKEYS F1=INA,FIELDS=(1,2,A),SORTED,NOSEQCK
JOINKEYS F2=INB,FIELDS=(1,2,A),SORTED,NOSEQCK
REFORMAT FIELDS=(F1:1,80)
INREC IFOUTLEN=80,IFTHEN=(WHEN=INIT,OVERLAY=(81:4,1,4:30Z)),
IFTHEN=(WHEN=GROUP,KEYBEGIN=(1,2),PUSH=(82:SEQ=2)),
IFTHEN=(WHEN=(82,2,ZD,EQ,01),OVERLAY=(04:81,1)),
IFTHEN=(WHEN=(82,2,ZD,EQ,02),OVERLAY=(05:81,1)),
IFTHEN=(WHEN=(82,2,ZD,EQ,03),OVERLAY=(06:81,1)),
IFTHEN=(WHEN=(82,2,ZD,EQ,04),OVERLAY=(07:81,1)),
IFTHEN=(WHEN=(82,2,ZD,EQ,05),OVERLAY=(08:81,1)),
IFTHEN=(WHEN=(82,2,ZD,EQ,06),OVERLAY=(09:81,1)),
IFTHEN=(WHEN=(82,2,ZD,EQ,07),OVERLAY=(10:81,1)),
IFTHEN=(WHEN=(82,2,ZD,EQ,08),OVERLAY=(11:81,1)),
IFTHEN=(WHEN=(82,2,ZD,EQ,09),OVERLAY=(12:81,1)),
IFTHEN=(WHEN=(82,2,ZD,EQ,10),OVERLAY=(13:81,1)),
IFTHEN=(WHEN=(82,2,ZD,EQ,11),OVERLAY=(14:81,1)),
IFTHEN=(WHEN=(82,2,ZD,EQ,12),OVERLAY=(15:81,1)),
IFTHEN=(WHEN=(82,2,ZD,EQ,13),OVERLAY=(16:81,1)),
IFTHEN=(WHEN=(82,2,ZD,EQ,14),OVERLAY=(17:81,1)),
IFTHEN=(WHEN=(82,2,ZD,EQ,15),OVERLAY=(18:81,1)),
IFTHEN=(WHEN=(82,2,ZD,EQ,16),OVERLAY=(19:81,1)),
IFTHEN=(WHEN=(82,2,ZD,EQ,17),OVERLAY=(20:81,1)),
IFTHEN=(WHEN=(82,2,ZD,EQ,18),OVERLAY=(21:81,1)),
IFTHEN=(WHEN=(82,2,ZD,EQ,19),OVERLAY=(22:81,1)),
IFTHEN=(WHEN=(82,2,ZD,EQ,20),OVERLAY=(23:81,1)),
IFTHEN=(WHEN=(82,2,ZD,EQ,21),OVERLAY=(24:81,1)),
IFTHEN=(WHEN=(82,2,ZD,EQ,22),OVERLAY=(25:81,1)),
IFTHEN=(WHEN=(82,2,ZD,EQ,23),OVERLAY=(26:81,1)),
IFTHEN=(WHEN=(82,2,ZD,EQ,24),OVERLAY=(27:81,1)),
IFTHEN=(WHEN=(82,2,ZD,EQ,25),OVERLAY=(28:81,1)),
IFTHEN=(WHEN=(82,2,ZD,EQ,26),OVERLAY=(29:81,1)),
IFTHEN=(WHEN=(82,2,ZD,EQ,27),OVERLAY=(30:81,1)),
IFTHEN=(WHEN=(82,2,ZD,EQ,28),OVERLAY=(31:81,1)),
IFTHEN=(WHEN=(82,2,ZD,EQ,29),OVERLAY=(32:81,1)),
IFTHEN=(WHEN=(82,2,ZD,EQ,30),OVERLAY=(33:81,1))
OUTFIL REMOVECC,NODETAIL,
SECTIONS=(1,2,TRAILER3=(1,3,
TOT=(04,1,BI,BI,LENGTH=1),TOT=(05,1,BI,BI,LENGTH=1),
TOT=(06,1,BI,BI,LENGTH=1),TOT=(07,1,BI,BI,LENGTH=1),
TOT=(08,1,BI,BI,LENGTH=1),TOT=(09,1,BI,BI,LENGTH=1),
TOT=(10,1,BI,BI,LENGTH=1),TOT=(11,1,BI,BI,LENGTH=1),
TOT=(12,1,BI,BI,LENGTH=1),TOT=(13,1,BI,BI,LENGTH=1),
TOT=(14,1,BI,BI,LENGTH=1),TOT=(15,1,BI,BI,LENGTH=1),
TOT=(16,1,BI,BI,LENGTH=1),TOT=(17,1,BI,BI,LENGTH=1),
TOT=(18,1,BI,BI,LENGTH=1),TOT=(19,1,BI,BI,LENGTH=1),
TOT=(20,1,BI,BI,LENGTH=1),TOT=(21,1,BI,BI,LENGTH=1),
TOT=(22,1,BI,BI,LENGTH=1),TOT=(23,1,BI,BI,LENGTH=1),
TOT=(24,1,BI,BI,LENGTH=1),TOT=(25,1,BI,BI,LENGTH=1),
TOT=(26,1,BI,BI,LENGTH=1),TOT=(27,1,BI,BI,LENGTH=1),
TOT=(28,1,BI,BI,LENGTH=1),TOT=(29,1,BI,BI,LENGTH=1),
TOT=(30,1,BI,BI,LENGTH=1),TOT=(31,1,BI,BI,LENGTH=1),
TOT=(32,1,BI,BI,LENGTH=1),TOT=(33,1,BI,BI,LENGTH=1)))
//* |
|
|