rajatbagga
Active User
Joined: 11 Mar 2007 Posts: 199 Location: india
|
|
|
|
hello Mariraj,
I had understood your requrement then you can use the below JCL. if this does not works then please let us know with some examples with more then one record in the output:
Code: |
//VZM1CKKN JOB (3GAHF3,R),
// 'RAJAT TEST',CLASS=X,MSGCLASS=Y,NOTIFY=&SYSUID
//S1 EXEC PGM=ICETOOL
//TOOLMSG DD SYSOUT=*
//DFSMSG DD SYSOUT=*
//*
//IN1 DD *
100ABCDE2007022299999999
100ABCDE2007090499999999
101ABCDE2007091299999999
101ABCDE2007091220080715
/*
//T1 DD DSN=&&T1,UNIT=SYSDA,SPACE=(CYL,(5,5)),DISP=(MOD,PASS)
//OUT DD SYSOUT=*
//TOOLIN DD *
SELECT FROM(IN1) TO(T1) ON(1,16,CH) FIRST
SELECT FROM(T1) TO(OUT) ON(17,8,CH) LAST
/* |
|
|
Skolusu
Senior Member
Joined: 07 Dec 2007 Posts: 2205 Location: San Jose
|
|
|
|
Mariraj,
Do you always have just 2 records for every key on the first 16 bytes or can you have more than that? if you have more than 2 keys how do u compare ? Also what is the LRECL and RECFM of the input dataset?
rajatbagga,
Your JCL will NOT give you the desired results as u are considering only FIRST of every record which would eliminate the 2nd record to be checked and your next select is only checking for the 8 bytes on ALL records. It should be checking based on the KEY in the first 16 bytes.
Try running your job with the following Data. Change the 1st record
Code: |
100ABCDE2007022277777777
100ABCDE2007090499999999
101ABCDE2007091299999999
101ABCDE2007091220080715
|
and you will see that you got 2 records in the output. |
|