SYNCSORT - Column Merge

In this Mainframe Forum - You can post your queries on DFSORT, ICETOOL , SyncSort & JCL Utilities

Moderators: Frank Yaeger, Moderator Group

Post Reply
syamshankar
Member
Posts: 1
Joined: Tue Jan 16, 2007 4:48 am

SYNCSORT - Column Merge

Post by syamshankar » Tue Jan 16, 2007 5:08 am

Hi,

I would like to merge two files.
For ex. FILE-A has two fields like SSN and Year-to-date-contribution.
FILE-B has two fields like SSN and Quarterly-Contribution.

FILE-A
-------

101010101 1000.78
202020202 2000.13

FILE-B
--------
101010101 1004.78
202020202 2010.13


Now, i have to do the calculation like Year-to-date-contribution (-) Quarterly-contribution based on the SSN.

i.e., my output would contain SSN and TALLY fields.


FILE-C
--------
101010101 0004.00
202020202 0010.00



Can you please give your valuable inputs in this.


Thanks in advance
Syam

Veera
Moderator
Posts: 111
Joined: Wed Feb 22, 2006 2:59 pm

SYNCSORT - Column Merge

Post by Veera » Sat Jan 20, 2007 5:20 am

Syam

First let me explain how i understood your requirement, and coded the JCL.If my understanding is wrong please correct me.

Say I have 2 input files , where i am considering first 2 bytes as my key

10 01 -> FILEA REC

10 19 -> FILEB REC

In step01 of my jcl i would generate a new FILEC which has data like

10 01 19 -> FILEC REC ( Ideally i am trying to build one rec for each key)

And then in step2

I would subtract 19 from 01 and genrate a new file FILED which has data

10 18 ----> FINAL OUTPUT.

Please find the JCL for the same below.

//TESTJCLX JOB (AAAA,04,T,0000),'SORTT',CLASS=C,MSGCLASS=T,
// NOTIFY=AAAAA
//*
/*JOBPARM L=9999
//*
//JOBLIB DD DSN=AAAA.PPROD.LOAD,DISP=SHR
//*
//STEP01 EXEC PGM=ICETOOL
//TOOLMSG DD SYSOUT=*
//DFSMSG DD SYSOUT=*
//*
//IN1 DD *
10 01
//*
//IN2 DD *
10 19
//*
//TMP1 DD DSN=AAAA.TEST.TEMP,
// DISP=(MOD,PASS),
// UNIT=SYSDA,
// SPACE=(CYL,(1,2),RLSE),
// DCB=(RECFM=FB,BLKSIZE=0)
//OUT DD DSN=AAAA.TEST.SPLOUT,
// DISP=(,CATLG,DELETE),
// UNIT=SYSDA,
// SPACE=(CYL,(1,2),RLSE),
// DCB=(RECFM=FB,LRECL=8,BLKSIZE=800)
//LIST1 DD SYSOUT=*
//TOOLIN DD *
COPY FROM(IN1) TO(TMP1) USING(CPY1)
COPY FROM(IN2) TO(TMP1) USING(CPY2)
SPLICE FROM(TMP1) TO(OUT) ON(1,2,CH) WITH(7,2)
//CPY1CNTL DD *
OUTREC FIELDS=(1:1,2,4:4,2,7:2X)
//CPY2CNTL DD *
OUTREC FIELDS=(1:1,2,7:4,2)
//*
//STEP02 EXEC PGM=ICETOOL
//TOOLMSG DD SYSOUT=*
//DFSMSG DD SYSOUT=*
//*
//IN1 DD DSN=AAAA.TEST.SPLOUT,
// DISP=SHR
//*
//OUT DD DSN=AAAA.TEST.SPLOUT1,
// DISP=(,CATLG,DELETE),
// UNIT=SYSDA,
// SPACE=(CYL,(1,2),RLSE),
// DCB=(RECFM=FB,LRECL=5,BLKSIZE=500)
//LIST1 DD SYSOUT=*
//TOOLIN DD *
COPY FROM(IN1) TO(OUT) USING(CPY1)
//CPY1CNTL DD *
OUTFIL FNAMES=OUT,
BUILD=(1,3,(7,2,ZD,SUB,4,2,ZD),EDIT=(TT),SIGNS=(+,-))

Note : This jcl can be modified as per your LRECL of files and field
positions.

Thanks
Veera.

Post Reply

FREE TUTORIALS

Tutorials
Free tutorials from mainframegurukul
  • JCL Tutorial
    Covers all important JCL concepts.
  • Cobol Tutorial
    This tutorials covers all Cobol Topics from STRING to COMP-3.
  • DB2 Tutorial
    DB2 Tutorial focuses on DB2 COBOL Programming.
  • SORT Tutorial
    This Tutorial covers all important aspects of DFSORT with examples
  • CICS Tutorial
    This CICS tutorial covers CICS concepts and CICS Basics, CICS COBOL Programming.
Interview
Mainframe Interview questions



Other References
Mainframe Tools and others