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
 
Sum up a field & then pick specific record

 
Post new topic   Reply to topic    IBMMAINFRAMES.com Support Forums -> DFSORT/ICETOOL
View previous topic :: :: View next topic  
Author Message
razesh84

New User


Joined: 05 Apr 2010
Posts: 41
Location: Kolkata,India

PostPosted: Wed Jul 13, 2011 3:34 pm    Post subject: Sum up a field & then pick specific record
Reply with quote

Hi,

My input file looks like this [lrecl=10]
Code:

----+----1
**********
A1 1.0   
A2 0.0
A3 0.3   
A3 0.6   
B2 0.9   
B2 0.1   


where first 2 bytes are key.
My requirement is to add the fields from position 4-6 for every key & pick only those records whose summed value is exactly 1.0
Anything smaller or greater than 1.0 should be discarded.

So, my o/p file should look like
Code:

----+----1
**********
A1 1.0   
B2 1.0   


Can you give me a card that meets the requirement.

Thanks
Back to top
View user's profile Send private message

Escapa

Senior Member


Joined: 16 Feb 2007
Posts: 1399
Location: IL, USA

PostPosted: Wed Jul 13, 2011 4:12 pm    Post subject:
Reply with quote

Where are you stuck up? at summing the decimal records? or at after summing while dropping records which are not 1?
Back to top
View user's profile Send private message
razesh84

New User


Joined: 05 Apr 2010
Posts: 41
Location: Kolkata,India

PostPosted: Wed Jul 13, 2011 4:12 pm    Post subject:
Reply with quote

sorry for my mistake

o/p file sud contain A1 & B2 records

Code:

----+----1
**********
A1 1.0   
B2 0.9   
B2 0.1   


also i need a discard file which contains discarded records

Code:

----+----1
**********
A2 0.0
A3 0.3   
A3 0.6   
Back to top
View user's profile Send private message
Escapa

Senior Member


Joined: 16 Feb 2007
Posts: 1399
Location: IL, USA

PostPosted: Wed Jul 13, 2011 7:28 pm    Post subject:
Reply with quote

Hi,
Try with this...
Code:

//STEP0100 EXEC PGM=SORT                                             
//SYSOUT   DD SYSOUT=*                                               
//SORTIN   DD *                                                       
A1 1.0                                                               
A2 0.0                                                               
A3 0.3                                                               
A3 0.6                                                               
B2 0.9                                                               
B2 0.1                                                               
//SORTOUT  DD DSN=&&TEMP,DISP=(NEW,PASS)                             
//SYSIN    DD *                                                       
  SORT FIELDS=(1,2,CH,A)                                             
  OUTFIL REMOVECC,NODETAIL,                                           
  SECTIONS=(1,2,TRAILER3=(1,2,3:TOT=(3,4,SFF,EDIT=(ST.T),SIGNS=(,-))))
/*                                                                   
//STEP0200 EXEC PGM=SORT                                             
//SYSOUT   DD SYSOUT=*                                               
//FILE1    DD *                               
A1 1.0                                       
A2 0.0                                       
A3 0.3                                       
A3 0.6                                       
B2 0.9                                       
B2 0.1                                       
//FILE2    DD DSN=&&TEMP,DISP=(MOD,PASS)     
//SORTOUT  DD SYSOUT=*                       
//SYSIN DD *                                 
  SORT FIELDS=(1,2,CH,A)                     
  JOINKEYS F1=FILE1,FIELDS=(1,2,A),SORTED     
  JOINKEYS F2=FILE2,FIELDS=(1,2,A),SORTED,   
  OMIT=(4,3,CH,NE,C'1.0')                     
  JOIN UNPAIRED,F2                           
  REFORMAT FIELDS=(F1:1,10)                   
/*

Output will be..
Code:

A1 1.0
B2 0.9
B2 0.1
Back to top
View user's profile Send private message
sqlcode1

Active Member


Joined: 08 Apr 2010
Posts: 578
Location: USA

PostPosted: Wed Jul 13, 2011 7:35 pm    Post subject:
Reply with quote

See if below works...
I assumed input and expected output is FB/80 and your numbers are UFF.
Code:
//STEP0001     EXEC PGM=SORT                     
//SYSOUT   DD SYSOUT=*                           
//SORTJNF1 DD *                                   
A1 0.1                                           
A1 0.2                                           
A1 0.3                                           
A1 0.4                                           
A2 1.0                                           
A3 0.1                                           
A3 0.1                                           
A3 0.1                                           
//SORTJNF2 DD *                                   
A1 0.1                                           
A1 0.2                                           
A1 0.3                                           
A1 0.4                                           
A2 1.0                                           
A3 0.1                                           
A3 0.1                                           
A3 0.1                                           
//SORTOUT  DD SYSOUT=*                           
//SYSIN    DD *                                   
  JOINKEYS FILES=F1,FIELDS=(01,02,A)             
  JOINKEYS FILES=F2,FIELDS=(01,02,A)             
  REFORMAT FIELDS=(F1:01,80,F2:81,3)             
  INCLUDE COND=(81,3,ZD,EQ,100)                   
  SORT FIELDS=COPY                               
  OUTREC BUILD=(1,80)                             
/*                                               
//JNF2CNTL DD *                                   
 INREC OVERLAY=(81:4,3,UFF,MUL,+10,TO=ZD,LENGTH=3)
 SUM FIELDS=(81,3,ZD)                             
//*                                               

OUTPUT
Code:
A1 0.1
A1 0.2
A1 0.3
A1 0.4
A2 1.0

Thanks,
Back to top
View user's profile Send private message
sqlcode1

Active Member


Joined: 08 Apr 2010
Posts: 578
Location: USA

PostPosted: Wed Jul 13, 2011 7:50 pm    Post subject:
Reply with quote

Sorry I didn't realize you needed discarded records as well and by the time I tested the job, I was well past 10 minutes limit.
Code:

//STEP0001     EXEC PGM=SORT                               
//SYSOUT   DD SYSOUT=*                                     
//SORTJNF1 DD *                                             
A1 0.1                                                     
A1 0.2                                                     
A1 0.3                                                     
A1 0.4                                                     
A2 1.0                                                     
A3 0.1                                                     
A3 0.1                                                     
A3 0.1                                                     
//SORTJNF2 DD *                                             
A1 0.1                                                     
A1 0.2                                                     
A1 0.3                                                     
A1 0.4                                                     
A2 1.0                                                     
A3 0.1                                                     
A3 0.1                                                     
A3 0.1                                                     
//SELECT   DD SYSOUT=*                                     
//REJECT   DD SYSOUT=*                                     
//SYSIN    DD *                                             
  JOINKEYS FILES=F1,FIELDS=(01,02,A)                       
  JOINKEYS FILES=F2,FIELDS=(01,02,A)                       
  REFORMAT FIELDS=(F1:01,80,F2:81,3)                       
  SORT FIELDS=COPY                                         
  OUTFIL FNAMES=SELECT,INCLUDE=(81,3,ZD,EQ,100),BUILD=(1,80)
  OUTFIL FNAMES=REJECT,SAVE,BUILD=(1,80)                   
/*                                                         
//JNF2CNTL DD *                                             
 INREC OVERLAY=(81:4,3,UFF,MUL,+10,TO=ZD,LENGTH=3)         
 SUM FIELDS=(81,3,ZD)                                       
//*                                                         

Thanks,
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 -> DFSORT/ICETOOL All times are GMT + 6 Hours
Page 1 of 1

 

Search our Forum:

Similar Topics
Topic Author Forum Replies Posted
No new posts VSAM - Accessing beyond record size Benchwarmer JCL & VSAM 6 Wed Apr 11, 2018 9:20 pm
No new posts How to include a particular field val... sakrat DFSORT/ICETOOL 8 Fri Apr 06, 2018 8:27 pm
No new posts Extract the records with a PD field's... sudhakar84 DFSORT/ICETOOL 11 Mon Apr 02, 2018 7:26 pm
No new posts Searching a table for the field name? socker_dad COBOL Programming 8 Sat Mar 31, 2018 2:57 am
No new posts SORT 3 files,extract specific fields ... Kiransr DFSORT/ICETOOL 13 Fri Mar 23, 2018 10:54 am

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