You need three sequential SORT PASSES, to generate three DIFFERENTLY SORTED parts of your report.
It is required because each part requires DIFFERENT sort of input data, to create intermediate sub-totals, by SECTIONS.
Each sort pass can append its result to the previous part, to produce full combined report at the very end.
As a starting point, try to create only one first part, for PARTNER group.
Joined: 22 Aug 2020 Posts: 15 Location: United States
Thanks. However, assuming I am one who doesn't want to think or work is very bad assumption.
I was working on production issues, assisting junior team members along with meetings, and just hadn't had a chance to respond. That I had figured I needed to do the subtotaling, totaling separately then concatenating the 3 files together to build the report.
As you see by date times in below, I wasn't waiting to be handheld. Your solution is also very well explained for those who do want to be handheld.
1st crack was even before your 1st response that was very helpful with an great explanation.
Code:
CONTROL STATEMENTS FOR 5655-ZOS, Z/OS DFSORT V3R1 - 16:58 ON WED APR 16, 2025 -
SORT FIELDS=(43,4,CH,A)
SUM FIELDS=(48,11,ZD)
OUTREC FIELDS=(1:C'T',2,1,C'TOTAL',
43:43,4,47:47,1,48:48,11,
200:1X)
I even made sure to move the 11 byte to a 12 byte field to ensure no overflow in summation occurred.
Code:
0 IDENTIFIER FROM CALLING PROGRAM IS 0001
1 RECORD TYPE IS F - DATA STARTS IN POSITION 1
0 C5-NONE C6-NONE C7-NONE C8-NONE E9-H60647 C9-NONE E5-H53894 E6-NONE
0 BLOCKSET SORT TECHNIQUE SELECTED
0 VISIT http://www.ibm.com/storage/dfsort FOR DFSORT PAPERS, EXAMPLES AND MORE
0 - CONTROL STATEMENTS FOR 5655-ZOS, Z/OS DFSORT V3R1 - 11:53 ON THU APR 17, 20
SORT FIELDS=(43,4,CH,A)
SUM FIELDS=(200,12,ZD)
OUTFIL FNAMES=OUTDD01,REMOVECC,
BUILD=(C'TZGRAND TOTALS',43:43,5,48,11,200:200,12,250:1X)
Code:
- CONTROL STATEMENTS FOR 5655-ZOS, Z/OS DFSORT V3R1 - 11:53 ON THU APR 17, 2025
SORT FIELDS=(2,1,CH,A,1,1,CH,A,43,4,CH,A)
SUM FIELDS=(200,12,ZD)
OUTFIL FNAMES=OUTDD01,REMOVECC,
BUILD=(C'S',2,1,C'SUBTOTAL',43:43,5,48,11,200:200,12,250:1X)
Code:
CONTROL STATEMENTS FOR 5655-ZOS, Z/OS DFSORT V3R1 - 11:53 ON THU APR 17, 2025 -
SORT FIELDS=(COPY)
OUTFIL FNAMES=OUTDD01,REMOVECC,
SECTIONS=(2,1,SKIP=2L,
HEADER3=(05:225,25,
45:C'PRODUCT',
60:C'SOURCE'),
TRAILER3=(05:C'=========================',
45:C'===========',
60:C'============')),
IFTHEN=(WHEN=(1,1,CH,EQ,C'A',OR,
((1,1,CH,EQ,C'S',OR,1,1,CH,EQ,C'T'),AND,
43,4,CH,EQ,C'TOTL')),
BUILD=(07:3,40,
52:200,12,ZD,EDIT=(IIIIIIIIIIIT),
132:1X)),
IFTHEN=(WHEN=(1,1,CH,EQ,C'D'),
BUILD=(09:43,4,
40:48,11,ZD,EDIT=(IIIIIIIIIIT),
132:1X)),
IFTHEN=(WHEN=((1,1,CH,EQ,C'S',OR,1,1,CH,EQ,C'T'),AND,
43,4,CH,NE,C'TOTL'),
BUILD=(09:43,4,
40:200,12,ZD,EDIT=(IIIIIIIIIIIT),
132:1X))
BUILD=(09:43,4,
40:200,12,ZD,EDIT=(IIIIIIIIIIIT),
132:1X))
D OF STATEMENTS FROM SRT1CNTL - PARAMETER LIST STATEMENTS FOLLOW
ICE084I 0 EXCP ACCESS METHOD USED FOR INDD01
ICE231I 0 STORAGE USED FOR OUTFIL : BELOW 16M = 20480, ABOVE 16M = 2109440
ICE210I 0 OUTDD01 : EXCP USED, LRECL = 250, BLKSIZE = 27750, TYPE = FB (SDB)
ICE751I 1 EF-NONE CB-NONE F0-NONE E8-NONE
ICE055I 0 INSERT 0, DELETE 0
ICE054I 0 RECORDS - IN: 28, OUT: 28
ICE227I 0 OUTDD01 : DELETED = 0, REPORT = 10, DATA = 28
ICE228I 0 OUTDD01 : TOTAL IN = 28, TOTAL OUT = 38
ICE267I 0 ZSORT ACCELERATOR PATH NOT USED RSN=197
ICE052I 0 END OF DFSORT