aviswam
New User
Joined: 17 Mar 2009 Posts: 9 Location: India
|
|
|
|
Hi,
I have 2 files which i have to join, however the lookup file, file2 is having duplicates and i want to join in the first available match and ignore the subsequent ones.
Is there anyway i can avoid the duplicates in the second file to be in the output other than sorting the second file on the key.
File 1
Code: |
0001 UK
0002 JAPAN
0003 NORWAY
0004 DUBAI |
File 2
Code: |
0001 APPLE
0001 ORANGE
0002 MANGO
0003 GUAVA
0004 GRAPES
0004 PEACH |
Fileout
Code: |
0001 UK APPLE
0002 JAPAN MANGO
0003 NORWAY GUAVA
0004 DUBAI GRAPES |
|
|
Skolusu
Senior Member
Joined: 07 Dec 2007 Posts: 2205 Location: San Jose
|
|
|
|
aviswam,
If your input is already sorted then you can use the following
Code: |
//STEP0100 EXEC PGM=SORT
//SYSOUT DD SYSOUT=*
//INA DD *
----+----1----+----2----+----3----+----4----+----5----+----
0001 UK
0002 JAPAN
0003 NORWAY
0004 DUBAI
//INB DD *
0001 APPLE
0001 ORANGE
0002 MANGO
0003 GUAVA
0004 GRAPES
0004 PEACH
//SORTOUT DD SYSOUT=*
//SYSIN DD *
OPTION COPY
JOINKEYS F1=INA,FIELDS=(1,4,A,81,4,A),SORTED,NOSEQCK
JOINKEYS F2=INB,FIELDS=(1,4,A,81,4,A),SORTED,NOSEQCK
REFORMAT FIELDS=(F1:1,12,F2:6,10)
//*
//JNF1CNTL DD *
INREC IFTHEN=(WHEN=GROUP,KEYBEGIN=(1,4),PUSH=(81:SEQ=4))
//*
//JNF2CNTL DD *
INREC IFTHEN=(WHEN=GROUP,KEYBEGIN=(1,4),PUSH=(81:SEQ=4))
//* |
The output from this is
Code: |
0001 UK APPLE
0002 JAPAN MANGO
0003 NORWAY GUAVA
0004 DUBAI GRAPES |
|
|