Creating Statistics in Reports
Creating Statistics in Reports Example
Scenario - Create the report with min, max, avg marks statistics for each department.
Input File - MATEPK.SORT.INPUT01 - FB file of 80 length
----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8 00001 student1 dept1 560 00003 student3 dept2 520 00004 student4 dept1 540 00005 student5 dept2 500 00002 student2 dept3 510 00006 student6 dept3 550 00008 student8 dept1 530 00007 student7 dept3 510 00009 student9 dept2 520 00010 student10 dept2 505
JCL -
----+----1----+----2----+----3----+----4----+----5----+----6----+----7--
//MATEPKD JOB (123),'MTH',NOTIFY=&SYSUID
//*
//STEP01 EXEC PGM=SORT
//SORTIN DD DSN=MATEPK.SORT.INPUT01,DISP=SHR
//OUTPUT1 DD DSN=MATEPK.SORT.OUTPT01,
// SPACE=(CYL,(1,1),RLSE),DCB=*.SORTIN,
// DISP=(NEW,CATLG,DELETE)
//SYSOUT DD SYSOUT=*
//SYSIN DD *
SORT FIELDS=(30,5,CH,A)
OUTFIL FNAMES=OUTPUT1,
SECTIONS=(30,5,SKIP=P,
HEADER3=(3:X,/,
3:'Department: ',30,5,/,X,/,
1:'Std num',11:'Std name',30:'Department',45:'Total marks',/,
1:'-------',11:'--------',30:'----------',45:'-----------'),
TRAILER3=(2/,5:'Max Marks = ',MAX=(45,3,ZD,M12,LENGTH=10),/,
5:'Min Marks = ',MIN=(45,3,ZD,M12,LENGTH=10),/,
5:'Avg Marks = ',AVG=(45,3,ZD,M12,LENGTH=10))),
OUTREC=(1,80)
/*
Output File - MATEPK.SORT.OUTPT01 - FB file of 80 length
----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8 Department: dept1 Std num Std name Department Total marks ------- -------- ---------- ----------- 00001 student1 dept1 560 00004 student4 dept1 540 00008 student8 dept1 530 Max Marks = 560 Min Marks = 530 Avg Marks = 543 Department: dept2 Std num Std name Department Total marks ------- -------- ---------- ----------- 00003 student3 dept2 520 00005 student5 dept2 500 00009 student9 dept2 520 00010 student10 dept2 505 Max Marks = 520 Min Marks = 500 Avg Marks = 511 Department: dept3 Std num Std name Department Total marks ------- -------- ---------- ----------- 00002 student2 dept3 510 00006 student6 dept3 550 00007 student7 dept3 510 Max Marks = 550 Min Marks = 510 Avg Marks = 523
Explaining Example -
- SORT FIELDS=(1,5,ZD,A) - sort all outputs in ascending order based on the ZD value from 1 to 5 positions.
- OUTFIL FNAMES=OUTPUT1,.. - Writes the output to the output1 file.
- SECTIONS=(30,5,SKIP=P, - specifies the section selection criteria. In the above example, the selection criteria is Dept. So given Dept positions.
- HEADER3=(3:X,/, 3:'Department: ',30,5,/,X,/,1:'Std num',11:'Std name',30:'Department',45:'Total marks',/,1:'-------',11:'--------',30:'----------',45:'-----------'), - Creates section level header.
- TRAILER3=(..) - Creates section level trailer.
- TRAILER3=(2/,..) - Adds two empty lines to output file after the data copied from input file.
- TRAILER3=(..,5:'Max Marks = ',MAX=(45,3,ZD,M12,LENGTH=10),/,..) - Calculates MAX marks from the Marks from 45th position of length 3 and displays the maximum value from 5th position in the output file.
- TRAILER3=(..,/,..) - moves the control to the next line.
- TRAILER3=(..,5:'Min Marks = ',MIN=(45,3,ZD,M12,LENGTH=10),/,..) - Calculates MIN marks from the Marks from 45th position of length 3 and displays the maximum value from 5th position in the output file.
- TRAILER3=(..,/,..) - moves the control to the next line.
- TRAILER3=(..,5:'Avg Marks = ',AVG=(45,3,ZD,M12,LENGTH=10)) - Calculates AVG marks from the Marks from 45th position of length 3 and displays the maximum value from 5th position in the output file.
- OUTREC=(1,80) - Build the output record from input file of length 80.