MVSFORUMS.com Forum Index MVSFORUMS.com
A Community of and for MVS Professionals
 
 FAQFAQ   SearchSearch   Quick Manuals   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Sort data at one posi of file based on value at other posi

 
Post new topic   Reply to topic   printer-friendly view    MVSFORUMS.com Forum Index -> Utilities
View previous topic :: View next topic  
Author Message
emadhubabu
Beginner


Joined: 03 Sep 2005
Posts: 13
Topics: 6

PostPosted: Tue Nov 03, 2009 8:33 am    Post subject: Sort data at one posi of file based on value at other posi Reply with quote

HI All,
I need help in SORT

File :
Total file is of length 34
position 1-4 = policy number
Position 5 = transaction type ( 1 or 2 or 3)
Position 6-10 = some data
position 11 will have a date of 8 char if transaction type is 1 ( at position 5 )
position 20 will have a date of 8 char if transaction type is 2 ( at position 5 )
position 30 will have a date of 8 char if transaction type is 2 ( at position 5 )
Data is as below
Code:

----+----1----+----2----+----3----
***************************** Top
10011XXXXX200911014444444444444444
10011XXXXX200910012222222222222222
10011XXXXX200912011111111111111111
10011XXXXX200911020000000000000000
10011XXXXX200911023333333333333333
10012XXXXXYYYYYYYY2009100244444444
10012XXXXXYYYYYYYY2009120222222222
10012XXXXXYYYYYYYY2009110211111111
10012XXXXXYYYYYYYY2009120300000000
10012XXXXXYYYYYYYY2009120333333333
100134444444444444444ZZZZZ20091103
100132222222222222222ZZZZZ20091003
100131111111111111111ZZZZZ20091203
100130000000000000000ZZZZZ20091103
100133333333333333333ZZZZZ20091204
10051XXXXX200911014444444444444444
10051XXXXX200910012222222222222222
10051XXXXX200912011111111111111111
10051XXXXX200911020000000000000000
10051XXXXX200911023333333333333333
10052XXXXXYYYYYYYY2009100244444444
10052XXXXXYYYYYYYY2009120222222222
10052XXXXXYYYYYYYY2009110211111111
10052XXXXXYYYYYYYY2009120300000000
10052XXXXXYYYYYYYY2009120333333333
100534444444444444444ZZZZZ20091103
100532222222222222222ZZZZZ20091003
100531111111111111111ZZZZZ20091203
100530000000000000000ZZZZZ20091103
100533333333333333333ZZZZZ20091204
10021XXXXX200911014444444444444444
10021XXXXX200910012222222222222222
10021XXXXX200912011111111111111111
10021XXXXX200911020000000000000000
10021XXXXX200911023333333333333333
10022XXXXXYYYYYYYY2009100244444444
10022XXXXXYYYYYYYY2009120222222222
10022XXXXXYYYYYYYY2009110211111111
10022XXXXXYYYYYYYY2009120300000000
10022XXXXXYYYYYYYY2009120333333333
100234444444444444444ZZZZZ20091103
100232222222222222222ZZZZZ20091003
100231111111111111111ZZZZZ20091203
100230000000000000000ZZZZZ20091103
100233333333333333333ZZZZZ20091204

1) Sort the 1-4 position first.
2) Sort the date at position 10 when transaction type 1, dont sort any data at other places
3) Sort the date at position 20 when transaction type 2, dont sort any data at other places
4) Sort the date at position 30 when transaction type 3, dont sort any data at other places

Code:

----+----1----+----2----+----3----
***************************** Top
10011XXXXX200910012222222222222222
10011XXXXX200911014444444444444444
10011XXXXX200911020000000000000000
10011XXXXX200911023333333333333333
10011XXXXX200912011111111111111111
10012XXXXXYYYYYYYY2009100244444444
10012XXXXXYYYYYYYY2009110211111111
10012XXXXXYYYYYYYY2009120222222222
10012XXXXXYYYYYYYY2009120300000000
10012XXXXXYYYYYYYY2009120333333333
100132222222222222222ZZZZZ20091003
100134444444444444444ZZZZZ20091103
100130000000000000000ZZZZZ20091103
100131111111111111111ZZZZZ20091203
100133333333333333333ZZZZZ20091204
10051XXXXX200910012222222222222222
10051XXXXX200911014444444444444444
10051XXXXX200911020000000000000000
10051XXXXX200911023333333333333333
10051XXXXX200912011111111111111111
10052XXXXXYYYYYYYY2009100244444444
10052XXXXXYYYYYYYY2009110211111111
10052XXXXXYYYYYYYY2009120222222222
10052XXXXXYYYYYYYY2009120300000000
10052XXXXXYYYYYYYY2009120333333333
100532222222222222222ZZZZZ20091003
100534444444444444444ZZZZZ20091103
100530000000000000000ZZZZZ20091103
100531111111111111111ZZZZZ20091203
100533333333333333333ZZZZZ20091204
10021XXXXX200910012222222222222222
10021XXXXX200911014444444444444444
10021XXXXX200911020000000000000000
10021XXXXX200911023333333333333333
10021XXXXX200912011111111111111111
10022XXXXXYYYYYYYY2009100244444444
10022XXXXXYYYYYYYY2009110211111111
10022XXXXXYYYYYYYY2009120222222222
10022XXXXXYYYYYYYY2009120300000000
10022XXXXXYYYYYYYY2009120333333333
100232222222222222222ZZZZZ20091003
100234444444444444444ZZZZZ20091103
100230000000000000000ZZZZZ20091103
100231111111111111111ZZZZZ20091203
100233333333333333333ZZZZZ20091204
Back to top
View user's profile Send private message
Frank Yaeger
Sort Forum Moderator
Sort Forum Moderator


Joined: 02 Dec 2002
Posts: 1618
Topics: 31
Location: San Jose

PostPosted: Tue Nov 03, 2009 11:41 am    Post subject: Reply with quote

The expected output you show does NOT match the rules you gave. For example, by the rules you gave, the second output record would be:

Code:

10012XXXXXYYYYYYYY 20091002  44444444 


and not

Code:

10011XXXXX20091101 44444444 44444444


Given that you really want to follow the rules you specified, here's a DFSORT job that will do it.

Code:

//S1    EXEC  PGM=SORT                                             
//SYSOUT    DD  SYSOUT=*                                           
//SORTIN DD DSN=...   input file (FB/34)                     
//SORTOUT DD DSN=...  output file (FB/34)
//SYSIN    DD    *                                                 
  INREC IFTHEN=(WHEN=(5,1,CH,EQ,C'1'),OVERLAY=(35:11,8)),         
        IFTHEN=(WHEN=(5,1,CH,EQ,C'2'),OVERLAY=(35:20,8)),         
        IFTHEN=(WHEN=(5,1,CH,EQ,C'3'),OVERLAY=(35:30,8))           
  OPTION EQUALS                                                   
  SORT FIELDS=(1,4,CH,A,35,8,CH,A)                                 
  OUTREC BUILD=(1,34)                                             


SORTOUT would have the following records:

Code:

10011XXXXX20091001 22222222  22222222 
10012XXXXXYYYYYYYY 20091002  44444444 
100132222222222222 222ZZZZZ  20091003 
10011XXXXX20091101 44444444  44444444 
10011XXXXX20091102 00000000  00000000 
10011XXXXX20091102 33333333  33333333 
10012XXXXXYYYYYYYY 20091102  11111111 
100134444444444444 444ZZZZZ  20091103 
100130000000000000 000ZZZZZ  20091103 
10011XXXXX20091201 11111111  11111111 
10012XXXXXYYYYYYYY 20091202  22222222 
10012XXXXXYYYYYYYY 20091203  00000000 
10012XXXXXYYYYYYYY 20091203  33333333 
100131111111111111 111ZZZZZ  20091203 
100133333333333333 333ZZZZZ  20091204 
10021XXXXX20091001 22222222  22222222 
10022XXXXXYYYYYYYY 20091002  44444444 
100232222222222222 222ZZZZZ  20091003 
10021XXXXX20091101 44444444  44444444 
10021XXXXX20091102 00000000  00000000
10021XXXXX20091102 33333333  33333333
10022XXXXXYYYYYYYY 20091102  11111111
100234444444444444 444ZZZZZ  20091103
100230000000000000 000ZZZZZ  20091103
10021XXXXX20091201 11111111  11111111
10022XXXXXYYYYYYYY 20091202  22222222
10022XXXXXYYYYYYYY 20091203  00000000
10022XXXXXYYYYYYYY 20091203  33333333
100231111111111111 111ZZZZZ  20091203
100233333333333333 333ZZZZZ  20091204
10051XXXXX20091001 22222222  22222222
10052XXXXXYYYYYYYY 20091002  44444444
100532222222222222 222ZZZZZ  20091003
10051XXXXX20091101 44444444  44444444
10051XXXXX20091102 00000000  00000000
10051XXXXX20091102 33333333  33333333
10052XXXXXYYYYYYYY 20091102  11111111
100534444444444444 444ZZZZZ  20091103
100530000000000000 000ZZZZZ  20091103   
10051XXXXX20091201 11111111  11111111   
10052XXXXXYYYYYYYY 20091202  22222222   
10052XXXXXYYYYYYYY 20091203  00000000   
10052XXXXXYYYYYYYY 20091203  33333333   
100531111111111111 111ZZZZZ  20091203   
100533333333333333 333ZZZZZ  20091204   

_________________
Frank Yaeger - DFSORT Development Team (IBM)
Specialties: JOINKEYS, FINDREP, WHEN=GROUP, ICETOOL, Symbols, Migration
DFSORT is on the Web at:
www.ibm.com/storage/dfsort
Back to top
View user's profile Send private message Send e-mail Visit poster's website
Display posts from previous:   
Post new topic   Reply to topic   printer-friendly view    MVSFORUMS.com Forum Index -> Utilities All times are GMT - 5 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


MVSFORUMS
Powered by phpBB © 2001, 2005 phpBB Group