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
 
Set flag in record on matching keys

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

New User


Joined: 22 Nov 2007
Posts: 55
Location: Germany

PostPosted: Wed Jun 15, 2011 2:05 pm    Post subject: Set flag in record on matching keys
Reply with quote

Hi folks,

can anybody help me to solve the following problem ?

File 1 has a non-duplicate key on pos 1-4.
File 2 has a matching or non-machting duplicate key on pos 1-4.

My result file should contain all records from file 1 and a flag 'Y' at the end
of the record when found a matching record in file 2

Example:

File 1:
1111AA
2222BB
3333CC
4444DD

File 2:
1111
3333
3333

Result:
1111AAY
2222BB
3333CCY
4444DD

Thanks for help in advance !
Back to top
View user's profile Send private message

nelson.pandian

Active User


Joined: 09 Apr 2008
Posts: 133
Location: Phoenix, AZ

PostPosted: Wed Jun 15, 2011 6:53 pm    Post subject:
Reply with quote

Hi oerdgie,

The Below DFSORT/ICETOOL JOB will give you the desired output. JOB attributes can be changed accordingly.
Code:
//STEP10   EXEC PGM=SORT                         
//*                                               
//SYSOUT   DD  SYSOUT=*                           
//*                                               
//SORTJNF1 DD *                                   
1111AA                                           
2222BB                                           
3333CC                                           
4444DD                                           
/*                                               
//*                                               
//SORTJNF2 DD *                                   
1111                                             
3333                                             
3333                                             
/*                                               
//*                                               
//OUT  DD  SYSOUT=*                               
//*                                               
//SYSIN    DD  *    *** CONSTANT CONTROL CARDS ***
  JOINKEYS FILES=F1,FIELDS=(1,4,A)               
  JOINKEYS FILES=F2,FIELDS=(1,4,A)               
  JOIN UNPAIRED                                   
  REFORMAT FIELDS=(F1:1,6,F2:5,6,?)               
  OPTION COPY                                     
  OUTFIL FNAMES=OUT,BUILD=(1,7),                 
         INCLUDE=(13,1,CH,EQ,C'1',OR,8,5,ZD,EQ,1)
/*                                               
//JNF2CNTL DD *                                     
  INREC OVERLAY=(5:C'Y',6:SEQNUM,5,ZD,RESTART=(1,1))
/*                                                 

OUTPUT:
Code:
1111AAY
2222BB
3333CCY
4444DD
Back to top
View user's profile Send private message
sqlcode1

Active Member


Joined: 08 Apr 2010
Posts: 578
Location: USA

PostPosted: Wed Jun 15, 2011 8:00 pm    Post subject:
Reply with quote

oerdgie,
See if below works...
Code:
//STEP0001 EXEC PGM=SORT                               
//SYSOUT   DD  SYSOUT=*                               
//SORTJNF1 DD *                                       
1111AA                                                 
2222BB                                                 
3333CC                                                 
4444DD                                                 
/*                                                     
//SORTJNF2 DD *                                       
1111                                                   
3333                                                   
3333                                                   
/*                                                     
//SORTOUT  DD  SYSOUT=*                               
//SYSIN    DD  *                                       
  JOINKEYS FILES=F1,FIELDS=(1,4,A)                     
  JOINKEYS FILES=F2,FIELDS=(1,4,A)                     
  JOIN UNPAIRED,F1                                     
  REFORMAT FIELDS=(F1:1,6,?)                           
  INREC IFTHEN=(WHEN=(7,1,CH,EQ,C'B'),OVERLAY=(8:C'Y'))
  SORT FIELDS=COPY                                     
  OUTFIL BUILD=(1,6,8,1)                               
/*                                                     
//JNF2CNTL DD *                                       
  SUM FIELDS=NONE                                     
/*                                                     

OUTPUT
Code:
1111AAY
2222BB
3333CCY
4444DD

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

Active Member


Joined: 08 Apr 2010
Posts: 578
Location: USA

PostPosted: Wed Jun 15, 2011 8:11 pm    Post subject:
Reply with quote

nelson.pandian,
Run your job with below input and observe results...
Code:
//SORTJNF1 DD *           
1111AA                   
1234AA                   
2222BB                   
3333CC                   
4444DD                   
/*                       
//SORTJNF2 DD *           
1111                     
1234                     
1234                     
3333                     
3333                     
/*                       

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

New User


Joined: 22 Nov 2007
Posts: 55
Location: Germany

PostPosted: Wed Jun 15, 2011 9:22 pm    Post subject: Reply to: Set flag in record on matching keys
Reply with quote

Hi,

first, thanks all for help ! icon_smile.gif

Sorry nelson.pandian, but sqlcode1 is right, your SORT doesn't work correct for me.

I now trying the example from sqlcode1...
Back to top
View user's profile Send private message
oerdgie

New User


Joined: 22 Nov 2007
Posts: 55
Location: Germany

PostPosted: Wed Jun 15, 2011 9:29 pm    Post subject:
Reply with quote

... and it works for me ! icon_biggrin.gif

Many thanks
oerdgie
Back to top
View user's profile Send private message
nelson.pandian

Active User


Joined: 09 Apr 2008
Posts: 133
Location: Phoenix, AZ

PostPosted: Thu Jun 16, 2011 10:33 am    Post subject:
Reply with quote

Hi,

@sqlcode1: You are correct. I missed to add the whole key in RESTART. Its my mistake.

The below code will work as the Key is included in the RESTART.
Code:
//STEP10   EXEC PGM=SORT                         
//*                                               
//SYSOUT   DD  SYSOUT=*                           
//*                                               
//SORTJNF1 DD *                                   
1111AA                                           
2222BB                                           
3333CC                                           
4444DD                                           
/*                                               
//*                                               
//SORTJNF2 DD *                                   
1111                                             
3333                                             
3333                                             
/*                                               
//*                                               
//OUT  DD  SYSOUT=*                               
//*                                               
//SYSIN    DD  *    *** CONSTANT CONTROL CARDS ***
  JOINKEYS FILES=F1,FIELDS=(1,4,A)               
  JOINKEYS FILES=F2,FIELDS=(1,4,A)               
  JOIN UNPAIRED                                   
  REFORMAT FIELDS=(F1:1,6,F2:5,6,?)               
  OPTION COPY                                     
  OUTFIL FNAMES=OUT,BUILD=(1,7),                 
         INCLUDE=(13,1,CH,EQ,C'1',OR,8,5,ZD,EQ,1)
/*                                               
//JNF2CNTL DD *                                     
  INREC OVERLAY=(5:C'Y',6:SEQNUM,5,ZD,RESTART=(1,4))
/*   
Back to top
View user's profile Send private message
Skolusu

Senior Member


Joined: 07 Dec 2007
Posts: 2205
Location: San Jose

PostPosted: Thu Jun 16, 2011 9:55 pm    Post subject:
Reply with quote

nelson.pandian,

You are assuming that the input is sorted the key. What happens if it is not ? Check and see if your solution works for the following data for SORTJNF2

Code:

//SORTJNF2 DD *     
1111               
3333               
2222               
3333               
/*


Sqlcode1 has the right approach.
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 query to fetch record which has only ... maxsubrat DB2 12 Mon Dec 11, 2017 5:03 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
No new posts Matching and unmatched records!! Vignesh Sid SYNCSORT 3 Thu Nov 09, 2017 11:22 am

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