|
View previous topic :: View next topic
|
| Author |
Message |
sri_mf
Active User

Joined: 31 Aug 2006 Posts: 218 Location: India
|
|
|
|
Hi..
My Input data is
AAAAA 11111 T 3
AAAAA 11111 T 1
AAAAA 11111 T 3
AAAAA 11111 L 3
AAAAA 11111 T 2
BBBBB BBBBB L 4
BBBBB BBBBB L 3
BBBBB BBBBB T 1
BBBBB BBBBB T 3
CCCCC CCCCC T 4
CCCCC CCCCC T 2
Now If first 5 bytes is AAAAA and from the 6th position onwards next 5 bytes is 11111 then i need to sum the data based on T or L which is there in the 13th Position.
I tried the below cards using SYNCSORT..
| Code: |
INREC IFTHEN=(WHEN=INIT,OVERLAY=(81:SEQNUM,8,ZD)),
IFTHEN=(WHEN=(1,5,CH,EQ,C'AAAAA',AND,7,5,CH,EQ,C'11111'),
OVERLAY=(81:8C'0'))
SORT FIELDS=(14,1,CH,A,81,8,ZD,A)
OPTION ZDPRINT
SUM FIELDS=(18,1,ZD)
OUTREC BUILD=(1,80) |
But it is not taking the second condition - AND,7,5,CH,EQ,C'11111' ( Throwing an error)
How to code multiple conditions in my case.... |
|
| Back to top |
|
 |
Joerg.Findeisen
Senior Member

Joined: 15 Aug 2015 Posts: 1441 Location: Bamberg, Germany
|
|
|
|
| sri_mf wrote: |
Hi..
My Input data is
AAAAA 11111 T 3
AAAAA 11111 T 1
AAAAA 11111 T 3
AAAAA 11111 L 3
AAAAA 11111 T 2
BBBBB BBBBB L 4
BBBBB BBBBB L 3
BBBBB BBBBB T 1
BBBBB BBBBB T 3
CCCCC CCCCC T 4
CCCCC CCCCC T 2
Now If first 5 bytes is AAAAA and from the 6th position onwards next 5 bytes is 11111 then i need to sum the data based on T or L which is there in the 13th Position.
I tried the below cards using SYNCSORT..
| Code: |
INREC IFTHEN=(WHEN=INIT,OVERLAY=(81:SEQNUM,8,ZD)),
IFTHEN=(WHEN=(1,5,CH,EQ,C'AAAAA',AND,7,5,CH,EQ,C'11111'),
OVERLAY=(81:8C'0'))
SORT FIELDS=(14,1,CH,A,81,8,ZD,A)
OPTION ZDPRINT
SUM FIELDS=(18,1,ZD)
OUTREC BUILD=(1,80) |
But it is not taking the second condition - AND,7,5,CH,EQ,C'11111' ( Throwing an error)
How to code multiple conditions in my case.... |
Nothing is "thrown" in z/OS..
Use:
| Code: |
| SUM FIELDS=(15,1,ZD) |
And also check Position of the first SORT FIELDS=(..) |
|
| Back to top |
|
 |
sri_mf
Active User

Joined: 31 Aug 2006 Posts: 218 Location: India
|
|
|
|
| Code: |
AAAAA 11111 T 3
AAAAA 11111 T 1
AAAAA 11111 T 3
AAAAA 11111 L 3
AAAAA 11111 T 2
BBBBB BBBBB L 4
BBBBB BBBBB L 3
BBBBB BBBBB T 1
BBBBB BBBBB T 3
CCCCC CCCCC T 4
CCCCC CCCCC T 2 |
after 11111 there are 2 spaces and after T or L there are 3 spaces.... T or L are starting at 14th Position and the numbers 3,1,3 etc are starting at 18th position |
|
| Back to top |
|
 |
sergeyken
Senior Member

Joined: 29 Apr 2008 Posts: 2283 Location: USA
|
|
|
|
Needs to be automatically re-routed to the Beginners Forum.
It’s all getting extremely annoying. |
|
| Back to top |
|
 |
dneufarth
Active User

Joined: 27 Apr 2005 Posts: 420 Location: Inside the SPEW (Southwest Ohio, USA)
|
|
|
|
And the SYNCSORT error message is?
Or, it just doesn't produce expected results? |
|
| Back to top |
|
 |
Rohit Umarjikar
Global Moderator

Joined: 21 Sep 2010 Posts: 3109 Location: NYC,USA
|
|
|
|
| Code: |
//SORTIN DD *
AAAAA 11111 T 3
AAAAA 11111 T 1
AAAAA 11111 T 3
AAAAA 11111 L 3
AAAAA 11111 T 2
BBBBB BBBBB L 4
BBBBB BBBBB L 3
BBBBB BBBBB T 1
BBBBB BBBBB T 3
CCCCC CCCCC T 4
CCCCC CCCCC T 2
//SORTOUT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//SYSIN DD *
//SYSIN DD *
INREC IFTHEN=(WHEN=INIT,OVERLAY=(81:SEQNUM,8,ZD)),
IFTHEN=(WHEN=(1,11,CH,EQ,C'AAAAA 11111'),OVERLAY=(81:8C'0'))
SORT FIELDS=(81,8,ZD,A)
OUTFIL REMOVECC,NODETAIL,SECTIONS=(81,8,
TRAILER3=(1,14,X,TOT=(15,1,ZD,EDIT=(IT)))),BUILD=(1,80) |
Output:
| Code: |
********************************* TOP OF DATA **********************************
AAAAA 11111 T 12
BBBBB BBBBB L 4
BBBBB BBBBB L 3
BBBBB BBBBB T 1
BBBBB BBBBB T 3
CCCCC CCCCC T 4
CCCCC CCCCC T 2
******************************** BOTTOM OF DATA ******************************** |
|
|
| Back to top |
|
 |
sri_mf
Active User

Joined: 31 Aug 2006 Posts: 218 Location: India
|
|
|
|
| Thank you very much Rohit. |
|
| Back to top |
|
 |
Rohit Umarjikar
Global Moderator

Joined: 21 Sep 2010 Posts: 3109 Location: NYC,USA
|
|
|
|
| Welcome Sri. |
|
| Back to top |
|
 |
|
|
 |
All times are GMT + 6 Hours |
|