Quote: |
We have only SORT/ICEMAN, but no ICETOOL! |
Code: |
//STEP0100 EXEC PGM=SORT //SYSOUT DD SYSOUT=* //SORTIN DD DSN=YOUR YESTERDAY'S FILE, // DISP=SHR //SORTOUT DD DSN=&T1,DISP=(,PASS),SPACE=(CYL,(X,Y),RLSE) //SYSIN DD * SORT FIELDS=COPY INREC FIELDS=(1,8,19,1,9,10) OUTREC FIELDS=(1,8,9,11,FS,PD,LENGTH=8,7C'0',C'1') /* //STEP0200 EXEC PGM=SORT //SYSOUT DD SYSOUT=* //SORTIN DD DSN=YOUR TODAY'S FILE, // DISP=SHR //SORTOUT DD DSN=&T2,DISP=(,PASS),SPACE=(CYL,(X,Y),RLSE) //SYSIN DD * SORT FIELDS=COPY INREC FIELDS=(1,8,19,1,9,10) OUTREC FIELDS=(1,8,9,11,FS,PD,LENGTH=8,7C'0',C'2') /* //STEP0300 EXEC PGM=SORT //SYSOUT DD SYSOUT=* //SORTIN DD DSN=&T1,DISP=OLD // DD DSN=&T2,DISP=OLD //SORTOUT DD SYSOUT=* //SYSIN DD * OPTION EQUALS SORT FIELDS=(1,8,CH,A) SUM FIELDS=(9,8,PD,17,8,ZD) OUTFIL OMIT=(17,8,ZD,EQ,1), OUTREC=(1,8,9,8,PD,EDIT=(TTTTTTTTTTS),SIGNS=(,,+,-)) //* |
Code: |
200501010000000005- 200501030000000011+ |
Code: |
//S1 EXEC PGM=ICETOOL //TOOLMSG DD SYSOUT=* //DFSMSG DD SYSOUT=* //TIN DD DSN=... Today's file //YIN DD DSN=... Yesterday's file //TT DD DSN=&&TT,UNIT=SYSDA,SPACE=(CYL,(5,5)),DISP=(MOD,PASS) //OUT DD DSN=... output file //TOOLIN DD * COPY FROM(TIN) TO(TT) USING(CTL1) COPY FROM(YIN) TO(TT) USING(CTL2) SORT FROM(TT) USING(CTL3) //CTL1CNTL DD * * Add 'T' id at end of today records. OUTREC FIELDS=(1,19,20:C'T') //CTL2CNTL DD * * Add 'Y' id at end of yesterday records. OUTREC FIELDS=(1,19,20:C'Y') //CTL3CNTL DD * * Refomat records to: * |date|zd_value|id| INREC FIELDS=(1,8,9:9,11,SFF,TO=ZD,LENGTH=11,20:20,1) * Sort on date. SORT FIELDS=(1,8,CH,A) * Sum on zd_value SUM FIELDS=(9,11,ZD) OUTFIL FNAMES=OUT, * Remove extra record with Y id. OMIT=(20,1,CH,EQ,C'Y'), * Reformat records back to: * |date|ast_value| OUTREC=(1,8,9:9,11,ZD,M1,SIGNS=(,,+,-),LENGTH=11) /* |
Quote: |
When I run your job, I get the wrong output: |
Code: |
//SYSIN DD * OPTION EQUALS SORT FIELDS=(1,8,CH,A) SUM FIELDS=(9,8,PD,17,8,ZD) OUTFIL OMIT=(17,8,ZD,EQ,1), OUTREC=(1,8,9,8,PD,EDIT=(TTTTTTTTTTS),SIGNS=(,,+,-)) /* |
Quote: |
I don't understand why you're summing on 17,8,ZD since that's the file identifier rather than the converted AST value. |
Quote: |
By summing on the file identifier , and using it in the omit condition we eliminate the non matching records from the output. |
output generated using printer-friendly topic mod. All times are GMT - 5 Hours