Portal | Manuals | References | Downloads | Info | Programs | JCLs | Master the Mainframes
IBM Mainframe Computers Forums Index
 
Register
 
IBM Mainframe Computers Forums Index Mainframe: Search IBM Mainframe Forum: FAQ Memberlist Usergroups Profile Log in to check your private messages Log in
 

 

How to sum fields using Syncsort

 
Post new topic   Reply to topic    IBMMAINFRAMES.com Support Forums -> JCL & VSAM
View previous topic :: :: View next topic  
Author Message
Deepakgoyal2005

New User


Joined: 22 Mar 2007
Posts: 57
Location: India

PostPosted: Tue Jun 24, 2008 10:02 am    Post subject: How to sum fields using Syncsort
Reply with quote

Please help on how to sum the fields corresponding to same value in a particular column.

Example:
Input is -
1111111111111111 100
1111111111111111 200
2222222222222222 600

Output required is -
1111111111111111 300
2222222222222222 600
Back to top
View user's profile Send private message

dick scherrer

Site Director


Joined: 23 Nov 2006
Posts: 19270
Location: Inside the Matrix

PostPosted: Tue Jun 24, 2008 11:53 am    Post subject:
Reply with quote

Hello,

When you have a question, start a new topic rather than posting a reply to some 2-year-old topic.

To do what you want, use "SUM FIELDS=(s,l,t)" where s=start pos, l=lth, and t=type.
Back to top
View user's profile Send private message
Frank Yaeger

DFSORT Moderator


Joined: 15 Feb 2005
Posts: 7130
Location: San Jose, CA

PostPosted: Tue Jun 24, 2008 8:14 pm    Post subject:
Reply with quote

Here's a DFSORT job that will do what you asked for:

Code:

//S1    EXEC  PGM=ICEMAN           
//SYSOUT    DD  SYSOUT=*           
//SORTIN DD *                       
1111111111111111 100               
1111111111111111 200               
2222222222222222 600               
/*
//SORTOUT DD SYSOUT=*               
//SYSIN    DD    *                 
  OPTION ZDPRINT                   
  SORT FIELDS=(1,16,CH,A)           
  SUM FIELDS=(18,3,ZD)             
/*
Back to top
View user's profile Send private message
Deepakgoyal2005

New User


Joined: 22 Mar 2007
Posts: 57
Location: India

PostPosted: Wed Jun 25, 2008 8:35 pm    Post subject: How to sum fields
Reply with quote

Suppose i have an input like -
Code:
1111111111 AAAA 100
           BBBB 200
           HHHH 300
2222222222 AAAA 100
           BBBB 100
3333333333 AAAA 100


Required output is -
Code:
1111111111 AAAA 600
2222222222 AAAA 200
3333333333 AAAA 100


The code in the previous reply do not works for this changed requirement.
Can i have a solution for it.
Back to top
View user's profile Send private message
Skolusu

Senior Member


Joined: 07 Dec 2007
Posts: 2205
Location: San Jose

PostPosted: Wed Jun 25, 2008 9:14 pm    Post subject:
Reply with quote

Deepakgoyal2005,

The following DFSORT/ICETOOL JCL will give you the desired results

Code:

//STEP0100 EXEC PGM=ICETOOL                                       
//TOOLMSG  DD SYSOUT=*                                           
//DFSMSG   DD SYSOUT=*                                           
//IN       DD *                                                   
1111111111 AAAA 100                                               
           BBBB 200                                               
           HHHH 300                                               
2222222222 AAAA 100                                               
           BBBB 100                                               
3333333333 AAAA 100                                               
//OUT      DD SYSOUT=*                                           
//TOOLIN   DD *                                                   
  SPLICE FROM(IN) TO(OUT) ON(81,8,CH) KEEPNODUPS WITHALL -       
  WITH(1,80) KEEPBASE USING(CTL1)                                 
//CTL1CNTL DD *                                                   
  INREC IFTHEN=(WHEN=INIT,OVERLAY=(81:SEQNUM,8,ZD)),             
  IFTHEN=(WHEN=(1,10,CH,GT,C' '),OVERLAY=(81:SEQNUM,8,ZD,1,15)), 
  IFTHEN=(WHEN=NONE,OVERLAY=(89:SEQNUM,8,ZD,                     
           81:81,8,ZD,SUB,89,8,ZD,M11,LENGTH=8))                 
                                                                 
  SORT FIELDS=COPY                                               
  OUTFIL FNAMES=OUT,BUILD=(80X),                                 
  REMOVECC,NODETAIL,                                             
  SECTIONS=(89,10,                                               
  TRAILER3=(89,15,X,TOT=(17,3,ZD,M10,LENGTH=8)))                 
/*                                                               


The output from this job is

Code:

1111111111 AAAA      600
2222222222 AAAA      200
3333333333 AAAA      100
Back to top
View user's profile Send private message
Deepakgoyal2005

New User


Joined: 22 Mar 2007
Posts: 57
Location: India

PostPosted: Fri Jun 27, 2008 8:29 pm    Post subject: Reply to: How to sum fields
Reply with quote

The above Code is giving SOC7.
I had tried with some modifications but haven't got the solution.
Back to top
View user's profile Send private message
Skolusu

Senior Member


Joined: 07 Dec 2007
Posts: 2205
Location: San Jose

PostPosted: Fri Jun 27, 2008 9:10 pm    Post subject: Re: Reply to: How to sum fields
Reply with quote

Deepakgoyal2005 wrote:
The above Code is giving SOC7.
I had tried with some modifications but haven't got the solution.


Well unless you show me the right input or layout of the file or the control cards you used , how do you expect us to help you?

I showed you an example based on the sample input you have shown.

1. What is the LRECL and RECFM of the files.
2. What is the pos and format of the key to be considered?
3. What is the pos and format of the field to be summed?
Back to top
View user's profile Send private message
Deepakgoyal2005

New User


Joined: 22 Mar 2007
Posts: 57
Location: India

PostPosted: Fri Jun 27, 2008 9:20 pm    Post subject: Reply to: How to sum fields
Reply with quote

Code:

//STEP010 EXEC PGM=ICETOOL                                       
//SYSOUT   DD SYSOUT=*                                           
//TOOLMSG  DD SYSOUT=*                                           
//DFSMSG   DD SYSOUT=*                                           
//IN       DD *                                                 
1111111111 AAAA 100                                             
           BBBB 200                                             
           HHHH 300                                             
2222222222 AAAA 100                                             
           BBBB 100                                             
3333333333 AAAA 100                                             
//OUT      DD DSN=DEAR.DEEPAK.DUMMY.FILE,                       
//            DISP=(NEW,CATLG,DELETE),                           
//            SPACE=(CYL,(01,01),RLSE),                         
//            DCB=(SYS1.DSCB,LRECL=80,RECFM=FB)                 
//TOOLIN   DD *                                                 
  SPLICE FROM(IN) TO(OUT) ON(81,8,CH) KEEPNODUPS WITHALL -       
  WITH(1,80) KEEPBASE USING(CTL1)                               
//CTL1CNTL DD *                                                 
  INREC IFTHEN=(WHEN=INIT,OVERLAY=(81:SEQNUM,8,ZD)),             
  IFTHEN=(WHEN=(1,10,CH,GT,C' '),OVERLAY=(81:SEQNUM,8,ZD,1,15)),
  IFTHEN=(WHEN=NONE,OVERLAY=(89:SEQNUM,8,ZD,                     
           81:81,8,ZD,SUB,89,8,ZD,M11,LENGTH=8))
                                               
  SORT FIELDS=COPY                             
  OUTFIL FNAMES=OUT,BUILD=(80X),               
  REMOVECC,NODETAIL,                           
  SECTIONS=(89,10,                             
  TRAILER3=(89,15,X,TOT=(17,3,ZD,M10,LENGTH=8)))
/*                                             


The above code was my input which gave me SOC7.
Let me know if i had missed any information.
Back to top
View user's profile Send private message
Skolusu

Senior Member


Joined: 07 Dec 2007
Posts: 2205
Location: San Jose

PostPosted: Fri Jun 27, 2008 9:27 pm    Post subject:
Reply with quote

Deepakgoyal2005,

You sure you ran the JOB as is? I get a return code of zero with the job. You mentioned that you made changes to the job, what did you change?

Show me the error messages you are getting. post the contents of DFSMSG DD
Back to top
View user's profile Send private message
Deepakgoyal2005

New User


Joined: 22 Mar 2007
Posts: 57
Location: India

PostPosted: Fri Jun 27, 2008 9:38 pm    Post subject:
Reply with quote

yes i ran the job as is.

The msg i got is -
" 09.02.29 JOB31590 $HASP165 DEARSUM ENDED AT HFNRDC01 - ABENDED S0C7 U0000 CN(INTERNAL) "

DFSMSG shows -
Code:

 SYNCSORT FOR Z/OS  1.2.3.1RI   U.S. PATENTS: 4210961, 5117495   (C) 2005 SYNCSORT INC.   DATE=2008/179   TIME=09.02.29
                                                 HSBC   z/OS   1.8.0                                                   
 PRODUCT LICENSED FOR CPU SERIAL NUMBER 53AF0, MODEL 2094 712              LICENSE/PRODUCT EXPIRATION DATE: 02 MAY 2012
 CTL1CNTL :                                                                                                           
   INREC IFTHEN=(WHEN=INIT,OVERLAY=(81:SEQNUM,8,ZD)),                    00051004                                     
   IFTHEN=(WHEN=(1,10,CH,GT,C' '),OVERLAY=(81:SEQNUM,8,ZD,1,15)),        00052004                                     
   IFTHEN=(WHEN=NONE,OVERLAY=(89:SEQNUM,8,ZD,                            00053004                                     
            81:81,8,ZD,SUB,89,8,ZD,M11,LENGTH=8))                        00054004                                     
                                                                         00055004                                     
   SORT FIELDS=COPY                                                      00056004                                     
   OUTFIL FNAMES=OUT,BUILD=(80X),                                        00057004                                     
   REMOVECC,NODETAIL,                                                    00058004                                     
   SECTIONS=(89,10,                                                      00059004                                     
   TRAILER3=(89,15,X,TOT=(17,3,ZD,M10,LENGTH=8)))                        00059104                                     
 PARMLIST :                                                                                                           
 OPTION RESINV=0,ARESINV=0,MSGDDN=DFSMSG,SORTIN=IN,SORTDD=CTL1,SORTOUT=OUT,DYNALL                                     
 OC,CMP=CLC,NOVLSHRT,EQUALS                                                                                           
 SORT FIELDS=(00081,0008,CH,A)                                                                                         
 MODS E35=(SYNCT#35,4096,,N)                                                                                           


JESYSMSG shows -

Code:

IEF237I JES2 ALLOCATED TO TOOLIN                         
IEF237I JES2 ALLOCATED TO CTL1CNTL                       
IEA995I SYMPTOM DUMP OUTPUT                               
SYSTEM COMPLETION CODE=0C7  REASON CODE=00000000         
 TIME=09.02.29  SEQ=11585  CPU=0000  ASID=02B1           
 PSW AT TIME OF ERROR  078D1000   80051A30  ILC 4  INTC 07
   NO ACTIVE MODULE FOUND                                 
   NAME=UNKNOWN                                           


JESMSGLG shows -
Code:

09.02.28 JOB31590  IEF403I DEARSUM - STARTED - TIME=09.02.28                     
09.02.29 JOB31590  +WER999A DEARSUM ,STEP010 ,        -  UNSUCCESSFUL SORT 0C7 S
09.02.29 JOB31590  IEA995I SYMPTOM DUMP OUTPUT  721                             
   721             SYSTEM COMPLETION CODE=0C7  REASON CODE=00000000             
   721              TIME=09.02.29  SEQ=11585  CPU=0000  ASID=02B1               
   721              PSW AT TIME OF ERROR  078D1000   80051A30  ILC 4  INTC 07   
   721                NO ACTIVE MODULE FOUND                                     
   721                NAME=UNKNOWN                                               
Back to top
View user's profile Send private message
dick scherrer

Site Director


Joined: 23 Nov 2006
Posts: 19270
Location: Inside the Matrix

PostPosted: Fri Jun 27, 2008 9:43 pm    Post subject:
Reply with quote

Hello,

You are using Syncsort, not DFSORT.
Back to top
View user's profile Send private message
Alissa Margulies

SYNCSORT Support


Joined: 25 Jul 2007
Posts: 500
Location: USA

PostPosted: Sat Jun 28, 2008 1:57 am    Post subject:
Reply with quote

Deepakgoyal2005,

Please contact me offline regarding the Abend0C7 you encountered. You can email me at alissa.margulies@syncsort.com. Thank you.
Back to top
View user's profile Send private message
Skolusu

Senior Member


Joined: 07 Dec 2007
Posts: 2205
Location: San Jose

PostPosted: Sat Jun 28, 2008 2:18 am    Post subject:
Reply with quote

Just an FYI , the JOB works fine with DFSORT's ICETOOL and produces the desired output
Back to top
View user's profile Send private message
Arun Raj

Moderator


Joined: 17 Oct 2006
Posts: 2168
Location: @my desk

PostPosted: Sun Jun 29, 2008 1:25 pm    Post subject:
Reply with quote

Hello Deepak,

Please try the below sort card. It works with syncsort. Our release is Syncsort 1.2.

Code:

//SYSIN DD *                                                         
  INREC IFTHEN=(WHEN=INIT,OVERLAY=(81:SEQNUM,8,ZD)),                 
        IFTHEN=(WHEN=(1,10,CH,GT,C' '),OVERLAY=(81:SEQNUM,8,ZD,1,15)),
        IFTHEN=(WHEN=NONE,OVERLAY=(89:1,15,104:SEQNUM,8,ZD,           
                81:81,8,ZD,SUB,104,8,ZD,M11,LENGTH=8))               
  SORT FIELDS=(81,8,CH,A)                                             
  SUM FIELDS=(17,3,ZD)                                               
  OUTREC FIELDS=(89,15,17,3,ZD,M10,LENGTH=8)                         
/*


Thanks,
Arun
Back to top
View user's profile Send private message
Alissa Margulies

SYNCSORT Support


Joined: 25 Jul 2007
Posts: 500
Location: USA

PostPosted: Mon Jun 30, 2008 8:28 pm    Post subject:
Reply with quote

(Maintenance was sent to resolve the Abend0C7).
Back to top
View user's profile Send private message
Deepakgoyal2005

New User


Joined: 22 Mar 2007
Posts: 57
Location: India

PostPosted: Fri Jul 04, 2008 10:02 am    Post subject:
Reply with quote

Thanks to Arun, since the code provided by him worked with SORT utility.

Arun, it would be nice of you if you could provide me a brief explanation of the code been provided by you.
Back to top
View user's profile Send private message
View previous topic :: :: View next topic  
Post new topic   Reply to topic    IBMMAINFRAMES.com Support Forums -> JCL & VSAM All times are GMT + 6 Hours
Page 1 of 1

 

Search our Forum:

Similar Topics
Topic Author Forum Replies Posted
No new posts syncsort: copy lines after the keyword shreya19 SYNCSORT 7 Fri Dec 02, 2016 9:47 am
No new posts Syncsort - Hard coded Value in output PORYES SYNCSORT 1 Thu Nov 03, 2016 9:23 am
No new posts Access SQLCA fields inside a stored p... gangapd DB2 4 Thu Oct 27, 2016 10:20 am
No new posts Syncsort - NULL in Integer field chec... nartcr SYNCSORT 4 Thu Oct 06, 2016 6:47 am
No new posts ICETOOL/SYNCSORT - SYSPRINT output nartcr DFSORT/ICETOOL 17 Wed Oct 05, 2016 10:46 pm


Facebook
Back to Top
 
Mainframe Wiki | Forum Rules | Bookmarks | Subscriptions | FAQ | Tutorials | Contact Us