View previous topic :: View next topic
|
Author |
Message |
sriramd
New User
Joined: 02 Nov 2006 Posts: 10
|
|
|
|
Hi,
I have a sorted file (say it is sorted on Address). For this key, there can be multiple records in the file.
Say we have a date field in the file and this date can be either same or unique for the multiple records with the same key.
I want to pick a particular record for each key, in which the record with the greater date needs to written to the output file. In case the date is same, i can pick any record.
eg.
Code: |
Address Name Date
C-123 abc 2006-11-02
C-123 xyz 2006-10-01
A-123 abc 2006-10-31
A-123 xyz 2006-10-31
|
If the above is the input file, i need the Output as:
Code: |
Address Name Date
C-123 abc 2006-11-02
A-123 abc/xyz 2006-10-31 ( it can be either of abc or xyz)
|
Is there any way that this can be done using JCL?
Urgent! |
|
Back to top |
|
|
ofer71
Global Moderator
Joined: 27 Dec 2005 Posts: 2358 Location: Israel
|
|
|
|
You can't do any programming from JCL.
I think REXX would be a great solution. Of course, you can invoke REXX as a batch job (written in JCL).
O. |
|
Back to top |
|
|
Frank Yaeger
DFSORT Developer
Joined: 15 Feb 2005 Posts: 7129 Location: San Jose, CA
|
|
|
|
sriramd,
Here's a DFSORT/ICETOOL job that will do what you asked for. Note that the output records will be sorted by the Address as you mentioned in your post but didn't show in your output example.
Code: |
//S1 EXEC PGM=ICETOOL
//TOOLMSG DD SYSOUT=*
//DFSMSG DD SYSOUT=*
//IN DD *
C-123 abc 2006-11-02
C-123 xyz 2006-10-01
A-123 abc 2006-10-31
A-123 xyz 2006-10-31
/*
//OUT DD SYSOUT=*
//TOOLIN DD *
SELECT FROM(IN) TO(OUT) ON(1,5,CH) FIRST USING(CTL1)
/*
//CTL1CNTL DD *
SORT FIELDS=(1,5,CH,A,17,10,CH,D)
/*
|
OUT would have:
Code: |
A-123 abc 2006-10-31
C-123 abc 2006-11-02
|
|
|
Back to top |
|
|
sriramd
New User
Joined: 02 Nov 2006 Posts: 10
|
|
|
|
Thank You very much for the help... |
|
Back to top |
|
|
|