I have a file which looks like -
|POL|SERVICING |CONVG |
|STS|AGENT |EFF DATE|
===============================
IL |A |021 |20080128|
MI |A |002 |20080110|
CT |A |036 |20080208|
CT |A |266 |20080117|
AK |A |723 |20080107|
NM |A |874 |20080107|
MD |A |876 |20080114|
CA |A |244 |20080102|
MA |A |499 |20080225|
The 361-362 colums hold the US state code. Now my requirement is to find out how many records are there for each state code. Ihave first used a control card like the following -
//SYSIN DD *
INREC FIELDS=(1,424,425:C'000001')
SORT FIELDS=(361,2,CH,A)
INCLUDE COND=(361,2,CH,NE,C' ',AND,361,2,CH,NE,C'==')
SUM FIELDS=(425,6),FORMAT=ZD
OUTREC FIELDS=(1:361,2,3:C' - ',6:425,6)
Here the output is coming in the following ways -
AK - 000001
AL - 000029
AR - 000013
AZ - 000032
CA - 000242
CO - 000028
CT - 000070
The output records are sorted in the alphabetical order of the state code. However, I wanted to see output in the ascending order of the number of occurence rather than the alphabetic order which came. I could not get it done as it requires two sorting in the single step.
Can anyone help me out with this requirement, I can not use more than one step, which is making the simple problem into a complex one.
Sorting twice in same card
Moderators: Frank Yaeger, Moderator Group
-
- Member
- Posts: 10
- Joined: Fri Jun 20, 2008 4:21 pm
- Location: Kolkata, India
Sorting twice in same card
Regards,
Captain N.
Captain N.
- Frank Yaeger
- Moderator
- Posts: 812
- Joined: Sat Feb 18, 2006 5:45 am
- Location: San Jose, CA
- Contact:
Here's a one-step DFSORT/ICETOOL job that will do what you asked for:
Code: Select all
//S1 EXEC PGM=ICETOOL
//TOOLMSG DD SYSOUT=*
//DFSMSG DD SYSOUT=*
//IN DD DSN=... input file
//T1 DD DSN=&&T1,UNIT=SYSDA,SPACE=(CYL,(5,5)),DISP=(,PASS)
//OUT DD DSN=... output file
//TOOLIN DD *
SORT FROM(IN) USING(CTL1)
SORT FROM(T1) TO(OUT) USING(CTL2)
/*
//CTL1CNTL DD *
INCLUDE COND=(361,2,CH,NE,C' ',AND,361,2,CH,NE,C'==')
INREC BUILD=(361,2,11:X)
SORT FIELDS=(1,2,CH,A)
OUTFIL FNAMES=T1,REMOVECC,NODETAIL,
SECTIONS=(1,2,
TRAILER3=(1,2,C' - ',COUNT=(M11,LENGTH=6)))
/*
//CTL2CNTL DD *
SORT FIELDS=(6,6,ZD,A)
/*
Frank Yaeger - DFSORT Development Team (IBM) - yaeger@us.ibm.com
Specialties: JOINKEYS, FINDREP, WHEN=GROUP, ICETOOL, Symbols, Migration
=> DFSORT/MVS is on the Web at http://www.ibm.com/storage/dfsort
Specialties: JOINKEYS, FINDREP, WHEN=GROUP, ICETOOL, Symbols, Migration
=> DFSORT/MVS is on the Web at http://www.ibm.com/storage/dfsort
FREE TUTORIALS
Tutorials
Free tutorials from mainframegurukul
- JCL Tutorial
Covers all important JCL concepts. - Cobol Tutorial
This tutorials covers all Cobol Topics from STRING to COMP-3. - DB2 Tutorial
DB2 Tutorial focuses on DB2 COBOL Programming. - SORT Tutorial
This Tutorial covers all important aspects of DFSORT with examples - CICS Tutorial
This CICS tutorial covers CICS concepts and CICS Basics, CICS COBOL Programming.
Interview
Mainframe Interview questions
- Cobol Interview Questions
50+ Interview Questions - JCL Interview Questions
50+ Interview Questions - DB2 Interview Questions
100+ Interview Questions - CICS Interview Questions
70+ Interview Questions - VSAM Interview Questions
27 Interview Questions
Other References
Mainframe Tools and others
- XPEDITER Reference
Explains how we can debug a program - FILEAID Reference
Explains how to browse , edit and delete datasets - Change Man Reference
Quick Start tutorial on Changeman - Abend Reference
Important Abend codes explained - FaceBook Page
MainframeGurukul FaceBook Page - LinkedIn Page
MainframeGurkul Linkedin Page