Portal | Manuals | References | Downloads | Info | Programs | JCLs | Mainframe wiki | Quick Ref
IBM Mainframe Computers Forums Index
 
Register
 
IBM Mainframe Computers Forums Index Mainframe: Search IBM Mainframe Forum: FAQ Memberlist Profile Log in to check your private messages Log in
 
FileAid 8.9 Record Count by Record Type

 
Post new topic   Reply to topic    IBMMAINFRAMES.com Support Forums -> Compuware & Other Tools
View previous topic :: :: View next topic  
Author Message
socker_dad

Active User


Joined: 05 Dec 2006
Posts: 147
Location: Columbia, MO

PostPosted: Mon Nov 17, 2008 11:16 pm    Post subject: FileAid 8.9 Record Count by Record Type
Reply with quote

I have a very large file with the record type in column 89 length of 2. There are 65 different record types on this file. I want a count of each type:

Record Type 00 = 2 records
Record Type 01 = 175415 records

and so forth. I can count one type at a time using this JCL:

Code:

//DD01     DD  DISP=OLD,DSN=MVD.MV603.DLAUDIT.NEW694
//DD01O    DD  DUMMY                                 
//SYSPRINT DD  SYSOUT=*                             
//SYSLIST  DD  SYSOUT=*                             
//SYSTOTAL DD  SYSOUT=*                             
//SYSUDUMP DD  SYSOUT=*                             
//SYSOUT   DD  SYSOUT=*                             
//SYSTOTAL DD  SYSOUT=*                             
//SYSIN    DD  *                                     
$$DD01 COPY IF=(89,EQ,C'  '),OUT=0                   


However, I don't want to run this job 65 times. Or 65 iterations within the same job.

There is not a field I can use with the ACCUM function.

Any suggestions?
Back to top
View user's profile Send private message

Robert Sample

Global Moderator


Joined: 06 Jun 2008
Posts: 8200
Location: East Dubuque, Illinois, USA

PostPosted: Mon Nov 17, 2008 11:44 pm    Post subject:
Reply with quote

If SAS is available, this is a PROC FREQ or PROC TABULATE -- very short bit of code. Pre-selecting File Aid for your tool, however, may make it impossible to generate the results you want without multiple runs against the data.
Back to top
View user's profile Send private message
socker_dad

Active User


Joined: 05 Dec 2006
Posts: 147
Location: Columbia, MO

PostPosted: Mon Nov 17, 2008 11:47 pm    Post subject:
Reply with quote

Nope - no SAS available.

Darn it.
Back to top
View user's profile Send private message
Robert Sample

Global Moderator


Joined: 06 Jun 2008
Posts: 8200
Location: East Dubuque, Illinois, USA

PostPosted: Tue Nov 18, 2008 12:05 am    Post subject:
Reply with quote

Use COBOL or another language and create a table of record counts. At least you're only making one pass through the file then.
Back to top
View user's profile Send private message
socker_dad

Active User


Joined: 05 Dec 2006
Posts: 147
Location: Columbia, MO

PostPosted: Tue Nov 18, 2008 1:31 am    Post subject:
Reply with quote

OK. Easytrieve Plus it is.......
Back to top
View user's profile Send private message
Terry Heinze

JCL Moderator


Joined: 14 Jul 2008
Posts: 1249
Location: Richfield, MN, USA

PostPosted: Tue Nov 18, 2008 3:47 am    Post subject:
Reply with quote

I believe this can be easily done with either of the major sort products. Maybe you post this in that forum?
Back to top
View user's profile Send private message
gcicchet

Senior Member


Joined: 28 Jul 2006
Posts: 1703
Location: Australia

PostPosted: Tue Nov 18, 2008 3:48 am    Post subject:
Reply with quote

Hi,

you can try FILEAID like this

Code:
//STEP0001 EXEC PGM=FILEAID                                             
//SYSPRINT DD SYSOUT=*                                                 
//DD01     DD DSN=INPUT-FILE                                           
//OUT01    DD DUMMY                                                     
//OUT02    DD DUMMY                                                     
//OUT03    DD DUMMY                                                     
//OUT04    DD DUMMY                                                     
//OUT05    DD DUMMY                                                     
//OUT06    DD DUMMY                                                     
//OUT07    DD DUMMY                                                     
//OUT08    DD DUMMY                                                     
//OUT09    DD DUMMY                                                     
//OUT10    DD DUMMY 
//OUT11    DD DUMMY 
//OUT12    DD DUMMY 
//OUT13    DD DUMMY 
//OUT14    DD DUMMY 
//OUT15    DD DUMMY 
//OUT16    DD DUMMY 
//OUT17    DD DUMMY 
//OUT18    DD DUMMY 
//OUT19    DD DUMMY 
//OUT20    DD DUMMY 
//OUT21    DD DUMMY 
//OUT22    DD DUMMY 
//OUT23    DD DUMMY 
//OUT24    DD DUMMY 
//OUT25    DD DUMMY 
//OUT26    DD DUMMY 
//OUT27    DD DUMMY 
//OUT28    DD DUMMY 
//OUT29    DD DUMMY 
//OUT30    DD DUMMY 
//OUT31    DD DUMMY     
//OUT32    DD DUMMY     
//OUT33    DD DUMMY     
//OUT34    DD DUMMY     
//OUT35    DD DUMMY     
//OUT36    DD DUMMY     
//OUT37    DD DUMMY     
//OUT38    DD DUMMY     
//OUT39    DD DUMMY     
//OUT40    DD DUMMY     
//OUT41    DD DUMMY     
//OUT42    DD DUMMY     
//OUT43    DD DUMMY     
//OUT44    DD DUMMY     
//OUT45    DD DUMMY     
//OUT46    DD DUMMY     
//OUT47    DD DUMMY     
//OUT48    DD DUMMY     
//OUT49    DD DUMMY     
//OUT50    DD DUMMY     
//OUT51    DD DUMMY     
//OUT52    DD DUMMY                           
//OUT53    DD DUMMY                           
//OUT54    DD DUMMY                           
//OUT55    DD DUMMY                           
//OUT56    DD DUMMY                           
//OUT57    DD DUMMY                           
//OUT58    DD DUMMY                           
//OUT59    DD DUMMY                           
//OUT60    DD DUMMY                           
//OUT61    DD DUMMY                           
//OUT62    DD DUMMY                           
//OUT63    DD DUMMY                           
//OUT64    DD DUMMY                           
//OUT65    DD DUMMY                           
//SYSIN    DD *                               
***  COPY OCCURRENCES OF                       
$$DD01 USER OUT=0,MAXOUT=99,                   
            IF=(89,EQ,C'01'),WRITE=OUT01,     
            IF=(89,EQ,C'02'),WRITE=OUT02,     
            IF=(89,EQ,C'03'),WRITE=OUT03,     
            IF=(89,EQ,C'04'),WRITE=OUT04,     
            IF=(89,EQ,C'05'),WRITE=OUT05,
            IF=(89,EQ,C'06'),WRITE=OUT06,
            IF=(89,EQ,C'07'),WRITE=OUT07,
            IF=(89,EQ,C'08'),WRITE=OUT08,
            IF=(89,EQ,C'09'),WRITE=OUT09,
            IF=(89,EQ,C'10'),WRITE=OUT10,
            IF=(89,EQ,C'11'),WRITE=OUT11,
            IF=(89,EQ,C'12'),WRITE=OUT12,
            IF=(89,EQ,C'13'),WRITE=OUT13,
            IF=(89,EQ,C'14'),WRITE=OUT14,
            IF=(89,EQ,C'15'),WRITE=OUT15,
            IF=(89,EQ,C'16'),WRITE=OUT16,
            IF=(89,EQ,C'17'),WRITE=OUT17,
            IF=(89,EQ,C'18'),WRITE=OUT18,
            IF=(89,EQ,C'19'),WRITE=OUT19,
            IF=(89,EQ,C'20'),WRITE=OUT20,
            IF=(89,EQ,C'21'),WRITE=OUT21,
            IF=(89,EQ,C'22'),WRITE=OUT22,
            IF=(89,EQ,C'23'),WRITE=OUT23,
            IF=(89,EQ,C'24'),WRITE=OUT24,
            IF=(89,EQ,C'25'),WRITE=OUT25,
            IF=(89,EQ,C'26'),WRITE=OUT26,         
            IF=(89,EQ,C'27'),WRITE=OUT27,         
            IF=(89,EQ,C'28'),WRITE=OUT28,         
            IF=(89,EQ,C'29'),WRITE=OUT29,         
            IF=(89,EQ,C'30'),WRITE=OUT30,         
            IF=(89,EQ,C'31'),WRITE=OUT31,         
            IF=(89,EQ,C'32'),WRITE=OUT32,         
            IF=(89,EQ,C'33'),WRITE=OUT33,         
            IF=(89,EQ,C'34'),WRITE=OUT34,         
            IF=(89,EQ,C'35'),WRITE=OUT35,         
            IF=(89,EQ,C'36'),WRITE=OUT36,         
            IF=(89,EQ,C'37'),WRITE=OUT37,         
            IF=(89,EQ,C'38'),WRITE=OUT38,         
            IF=(89,EQ,C'39'),WRITE=OUT39,         
            IF=(89,EQ,C'40'),WRITE=OUT40,         
            IF=(89,EQ,C'41'),WRITE=OUT41,         
            IF=(89,EQ,C'42'),WRITE=OUT42,         
            IF=(89,EQ,C'43'),WRITE=OUT43,         
            IF=(89,EQ,C'44'),WRITE=OUT44,         
            IF=(89,EQ,C'45'),WRITE=OUT45,         
            IF=(89,EQ,C'46'),WRITE=OUT46,         
            IF=(89,EQ,C'47'),WRITE=OUT47,                               
            IF=(89,EQ,C'48'),WRITE=OUT48,                               
            IF=(89,EQ,C'49'),WRITE=OUT49,                               
            IF=(89,EQ,C'50'),WRITE=OUT50,                               
            IF=(89,EQ,C'51'),WRITE=OUT51,                               
            IF=(89,EQ,C'52'),WRITE=OUT52,                               
            IF=(89,EQ,C'53'),WRITE=OUT53,                               
            IF=(89,EQ,C'54'),WRITE=OUT54,                               
            IF=(89,EQ,C'55'),WRITE=OUT55,                               
            IF=(89,EQ,C'56'),WRITE=OUT56,                               
            IF=(89,EQ,C'57'),WRITE=OUT57,                               
            IF=(89,EQ,C'58'),WRITE=OUT58,                               
            IF=(89,EQ,C'59'),WRITE=OUT59,                               
            IF=(89,EQ,C'60'),WRITE=OUT60,                               
            IF=(89,EQ,C'61'),WRITE=OUT61,                               
            IF=(89,EQ,C'62'),WRITE=OUT62,                               
            IF=(89,EQ,C'63'),WRITE=OUT63,                               
            IF=(89,EQ,C'64'),WRITE=OUT64,                               
            IF=(89,EQ,C'65'),WRITE=OUT65                               
//*                                                                     
//**********************************************************************



If you have DFSORT/ICETOOL you can use the following

Code:
//STATS    EXEC PGM=ICETOOL                                     
//IN1      DD DSN=INPUT-FILE                                   
//LISTING  DD SYSOUT=*                                         
//TOOLMSG  DD SYSOUT=*                                         
//DFSMSG   DD SYSOUT=*                                         
//TOOLIN   DD *                                                 
  OCCUR FROM(IN1) LIST(LISTING)  -                             
  DATE(DMY.) TITLE('STATS               PAGE') PAGE -           
  HEADER('RECORD TYPE') ON(89,2,CH) -                           
  HEADER('OCCURRENCES    ') ON(VALCNT)                         
/*                                                             




Gerry
Back to top
View user's profile Send private message
Arun Raj

Moderator


Joined: 17 Oct 2006
Posts: 2287
Location: @my desk

PostPosted: Tue Nov 18, 2008 10:41 am    Post subject:
Reply with quote

Or you can use this as well.
Code:

//STEP01   EXEC PGM=SORT
//SORTIN   DD DSN=INPUT-FILE                                   
//SYSOUT   DD SYSOUT=*                                         
//SORTOUT  DD SYSOUT=*                                         
//SYSIN    DD *
  OPTION COPY
  OUTFIL REMOVECC,NODETAIL,SECTIONS=(89,2,
         TRAILER3=(C'Record Type ',89,2,COUNT,C' records'))
Back to top
View user's profile Send private message
Arun Raj

Moderator


Joined: 17 Oct 2006
Posts: 2287
Location: @my desk

PostPosted: Tue Nov 18, 2008 5:32 pm    Post subject:
Reply with quote

socker_dad,

The above sort assumes the input file to be sorted on "Record type". If it is not, you should replace
Code:
  OPTION COPY
as
Code:
  SORT FIELDS=(89,2,CH,A)
Back to top
View user's profile Send private message
socker_dad

Active User


Joined: 05 Dec 2006
Posts: 147
Location: Columbia, MO

PostPosted: Wed Nov 19, 2008 6:14 am    Post subject:
Reply with quote

Thanks everyone! My favourite was arcvns' Sort solution. Very fast, very accurate.
Back to top
View user's profile Send private message
View previous topic :: :: View next topic  
Post new topic   Reply to topic    IBMMAINFRAMES.com Support Forums -> Compuware & Other Tools All times are GMT + 6 Hours
Page 1 of 1

 

Search our Forum:

Similar Topics
Topic Author Forum Replies Posted
No new posts query to fetch record which has only ... maxsubrat DB2 12 Mon Dec 11, 2017 5:03 pm
No new posts ISMF Difference between volume count ... upendrasri IBM Tools 2 Tue Dec 05, 2017 12:40 pm
No new posts Extract record for change in combinat... Trinadh DFSORT/ICETOOL 6 Thu Nov 23, 2017 3:32 pm
No new posts Extract Record using range of Data scorp_rahul23 DFSORT/ICETOOL 3 Wed Nov 15, 2017 11:54 pm
No new posts Squeeze record left so that zeroes ar... Vignesh Sid SYNCSORT 5 Fri Nov 10, 2017 1:40 pm

Facebook
Back to Top
 
Job Vacancies | Forum Rules | Bookmarks | Subscriptions | FAQ | Polls | Contact Us