Tuesday, April 1, 2025

Explanation for JOIN statement in SORT JOINKEYS application

If you don't specify a JOIN statement for a JOINKEYS application, only paired records from F1 and F2 are kept and processed by the main task as the joined records. This is known as an inner join.
 
You can change which records are kept and processed by the main task as the joined records by specifying a JOIN statement. You must specify the UNPAIRED operand. The F1, F2 and ONLY operands are optional. The JOIN operands you specify indicate the joined records to be kept and processed by the main task as follows:
 
JOIN UNPAIRED,F1,F2 or JOIN UNPAIRED
Unpaired records from F1 and F2 as well as paired records. This is known as a full outer join.
 
JOIN UNPAIRED,F1
Unpaired records from F1 as well as paired records. This is known as a left outer join.
 
JOIN UNPAIRED,F2
Unpaired records from F2 as well as paired records. This is known as a right outer join.
 
JOIN UNPAIRED,F1,F2,ONLY or JOIN UNPAIRED,ONLY
Unpaired records from F1 and F2.
 
JOIN UNPAIRED,F1,ONLY
Unpaired records from F1.
 
JOIN UNPAIRED,F2,ONLY
Unpaired records from F2.
 
Examples are given below for each of the above JOIN cases.
 
//STEP01   EXEC PGM=SORT                
//SORTJNF1 DD *                         
001 FILE 1                              
002 FILE 1                              
//SORTJNF2 DD *                         
001 FILE 2                              
003 FILE 2                              
//SORTOUT  DD SYSOUT=*                  
//SYSOUT   DD SYSOUT=*                  
//SYSIN    DD *                         
 OPTION COPY                            
 JOINKEYS FILES=F1,FIELDS=(1,3,CH,A)    
 JOINKEYS FILES=F2,FIELDS=(1,3,CH,A)    
 REFORMAT FIELDS=(F1:1,10,F2:1,10,?)    
 JOIN UNPAIRED,F1,F2                    
/*                                      
 
Output of the above step
001 FILE 1001 FILE 2B
002 FILE 1          1
          003 FILE 22

 
//STEP02   EXEC PGM=SORT               
//SORTJNF1 DD *                        
001 FILE 1                             
002 FILE 1                             
//SORTJNF2 DD *                        
001 FILE 2                             
003 FILE 2                             
//SORTOUT  DD SYSOUT=*                 
//SYSOUT   DD SYSOUT=*                 
//SYSIN    DD *                        
 OPTION COPY                           
 JOINKEYS FILES=F1,FIELDS=(1,3,CH,A)   
 JOINKEYS FILES=F2,FIELDS=(1,3,CH,A)   
 REFORMAT FIELDS=(F1:1,10,F2:1,10,?)   
 JOIN UNPAIRED,F1                      
/*                                     
 
Output of the above step
001 FILE 1001 FILE 2B
002 FILE 1          1

 
//STEP03   EXEC PGM=SORT                
//SORTJNF1 DD *                         
001 FILE 1                              
002 FILE 1                              
//SORTJNF2 DD *                         
001 FILE 2                              
003 FILE 2                              
//SORTOUT  DD SYSOUT=*                  
//SYSOUT   DD SYSOUT=*                  
//SYSIN    DD *                         
 OPTION COPY                            
 JOINKEYS FILES=F1,FIELDS=(1,3,CH,A)    
 JOINKEYS FILES=F2,FIELDS=(1,3,CH,A)    
 REFORMAT FIELDS=(F1:1,10,F2:1,10,?)    
 JOIN UNPAIRED,F2                       
/*                                      
 
Output of the above step
001 FILE 1001 FILE 2B
          003 FILE 22

 
//STEP04   EXEC PGM=SORT               
//SORTJNF1 DD *                        
001 FILE 1                             
002 FILE 1                             
//SORTJNF2 DD *                        
001 FILE 2                             
003 FILE 2                             
//SORTOUT  DD SYSOUT=*                 
//SYSOUT   DD SYSOUT=*                 
//SYSIN    DD *                        
 OPTION COPY                           
 JOINKEYS FILES=F1,FIELDS=(1,3,CH,A)   
 JOINKEYS FILES=F2,FIELDS=(1,3,CH,A)   
 REFORMAT FIELDS=(F1:1,10,F2:1,10,?)   
 JOIN UNPAIRED,F1,F2,ONLY              
/*                                     
 
Output of the above step
002 FILE 1          1
          003 FILE 22

 
//STEP05   EXEC PGM=SORT              
//SORTJNF1 DD *                       
001 FILE 1                            
002 FILE 1                            
//SORTJNF2 DD *                       
001 FILE 2                            
003 FILE 2                            
//SORTOUT  DD SYSOUT=*                
//SYSOUT   DD SYSOUT=*                
//SYSIN    DD *                       
 OPTION COPY                          
 JOINKEYS FILES=F1,FIELDS=(1,3,CH,A)  
 JOINKEYS FILES=F2,FIELDS=(1,3,CH,A)  
 REFORMAT FIELDS=(F1:1,10,?)          
 JOIN UNPAIRED,F1,ONLY                
/*                                    
 
Output of the above step
002 FILE 11 

 
//STEP06   EXEC PGM=SORT               
//SORTJNF1 DD *                        
001 FILE 1                             
002 FILE 1                             
//SORTJNF2 DD *                        
001 FILE 2                             
003 FILE 2                             
//SORTOUT  DD SYSOUT=*                 
//SYSOUT   DD SYSOUT=*                 
//SYSIN    DD *                        
 OPTION COPY                           
 JOINKEYS FILES=F1,FIELDS=(1,3,CH,A)   
 JOINKEYS FILES=F2,FIELDS=(1,3,CH,A)   
 REFORMAT FIELDS=(F2:1,10,?)           
 JOIN UNPAIRED,F2,ONLY                 
/*                                     
//*
 
Output of the above step
003 FILE 22
                                     

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.