I have the requirement to compare the two files and pick up
the matching records.
File 1. file2

23 32
32 13
34 15
35 36
36 35
43

Get the matching records from this 2 files to out file. how
you will do this in cobol program?

Answers were Sorted based on User's Feedback



I have the requirement to compare the two files and pick up the matching records. File 1. ..

Answer / harsha

First merge bothe file.
Use sort card
//Sysin dd *
sort fields=-------
Sum fields=(none,xsum)
/*

File mentioned in SORTXSUM dd name will contain matching
records.

Is This Answer Correct ?    0 Yes 2 No

I have the requirement to compare the two files and pick up the matching records. File 1. ..

Answer / arun

IDENTIFICATION DIVISION.
PROGRAM-ID. MATCH.
DATE-COMPILED.
*-----------------------------------------------------
----------*

*
*
* THIS PROGRAM COMPARES THE CAP INFO AGAINS THE ELIG
INFO AND *
* CREATES A FILE OF MATCHED PROVIDER, PERSON, RATE
INFO. *
*-----------------------------------------------------
----------*
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.

SELECT COMP-CAP ASSIGN TO UT-S-CAP.
SELECT COMP-ELG ASSIGN TO UT-S-ELIG.
SELECT NEW-RATE ASSIGN TO UT-S-NEWRATE.

DATA DIVISION.
FILE SECTION.

FD COMP-CAP
LABEL RECORDS ARE STANDARD
RECORDING MODE IS F
BLOCK CONTAINS 0 RECORDS.

01 COMP-CAP-REC.
05 CCR-PROV PIC X(9).
05 CCR-FILL PIC X.
05 CCR-RATE PIC X(5).
05 FILLER PIC X(65).

FD COMP-ELG
RECORDING MODE IS F
BLOCK CONTAINS 0 RECORDS
LABEL RECORDS ARE STANDARD.

01 COMP-ELG-REC.
05 CER-PRSN PIC X(12).
05 FILLER PIC X.
05 CER-PROV PIC X(9).
05 FILLER PIC X(58).

FD NEW-RATE
RECORDING MODE IS F
BLOCK CONTAINS 0 RECORDS
LABEL RECORDS ARE STANDARD.

01 NEW-RATE-REC PIC X(80).

WORKING-STORAGE SECTION.
77 WKS-MESSAGE PIC X(23) VALUE
'WORKING-STORAGE
SECTION'.

77 CAP-READ PIC 9(7) COMP-3 VALUE 0.
77 ELG-READ PIC 9(7) COMP-3 VALUE 0.
77 NEW-RATE-RECS PIC 9(7) COMP-3 VALUE 0.
77 RATE-ZEROED PIC 9(7) COMP-3 VALUE 0.
77 TOT-MONEY PIC 9(7)V99 COMP-3 VALUE
0.

01 MATCH-FILES.
05 NEED-CAP PIC X VALUE 'Y'.
05 NEED-ELG PIC X VALUE 'Y'.
05 EOF-CAP PIC X VALUE 'N'.
05 EOF-ELG PIC X VALUE 'N'.
05 COMP-CAPP PIC 9(9) VALUE ZEROS.
05 COMP-ELIG PIC 9(9) VALUE ZEROS.

01 NEW-RATE-REC-WORK.
05 NRR-PROV PIC X(9).
05 FILLER PIC X VALUE X'05'.
05 NRR-PRSN PIC X(12).
05 FILLER PIC X VALUE X'05'.
05 NRR-RATE PIC X(5).
05 FILLER REDEFINES NRR-RATE.
10 FILLER PIC X.
10 NRR-DLR PIC 9.
10 FILLER PIC X.
10 NRR-CENTS PIC 99.
05 FILLER PIC X(52).

01 WORK-MONEY PIC 9V99.
01 WORK-MONEY-R REDEFINES WORK-MONEY.
05 WM-DLR PIC 9.
05 WM-CENTS PIC 99.

PROCEDURE DIVISION.
010-OPEN-FILES.
OPEN INPUT COMP-CAP
COMP-ELG
OUTPUT NEW-RATE.


020-READ-CAP-RECORDS.
IF EOF-CAP = 'Y' OR
NEED-CAP = 'N'
GO TO 030-READ-ELG.
READ COMP-CAP AT END
MOVE 'Y' TO EOF-CAP
MOVE 'N' TO NEED-CAP
MOVE 999999999 TO COMP-CAPP
MOVE ALL 'Z' TO COMP-CAP-REC
GO TO 030-READ-ELG.
IF CCR-PROV NOT NUMERIC
DISPLAY 'CAP PROVIDER NOT NUMERIC - SKIPPED
= '
COMP-CAP-REC
GO TO 020-READ-CAP-RECORDS.
MOVE CCR-PROV TO COMP-CAPP.
ADD 1 TO CAP-READ.
MOVE 'N' TO NEED-CAP.

030-READ-ELG.
IF EOF-ELG = 'Y' OR
NEED-ELG = 'N'
GO TO 040-MATCH-FILES.
READ COMP-ELG AT END
MOVE 'Y' TO EOF-ELG
MOVE 'N' TO NEED-ELG
MOVE 999999999 TO COMP-ELIG
MOVE ALL 'Z' TO COMP-ELG-REC
GO TO 040-MATCH-FILES.
IF CER-PROV NOT NUMERIC
DISPLAY 'ELG PROVIDER NOT NUMERIc - SKIPPED'
GO TO 030-READ-ELG.
MOVE CER-PROV TO COMP-ELIG.
ADD 1 TO ELG-READ.
MOVE 'N' TO NEED-ELG.


040-MATCH-FILES.
IF EOF-CAP = 'Y' AND
EOF-ELG = 'Y'
GO TO 990-PUBLISH-STATS.

IF COMP-CAPP = COMP-ELIG GO TO 100-CAP-ELIG-
MATCH.
these compares/comments change dependng on
requirements.
IF COMP-CAPP < COMP-ELIG GO TO 120-CAP-NOT-
USED.
IF COMP-CAPP < COMP-ELIG
MOVE 'Y' TO NEED-CAP
GO TO 020-READ-CAP-RECORDS.
IF COMP-CAPP > COMP-ELIG GO TO 140-GET-RATE.
IF COMP-CAPP > COMP-ELIG
MOVE 'Y' TO NEED-ELG
DISPLAY 'MISSING CLAIM DATA '
GO TO 020-READ-CAP-RECORDS.

WE SHOULD NOT BE ABLE TO GET HERE. . . .
DISPLAY ' 040-MATCH-FILES FATAL ERROR'.
DISPLAY ' CAP=' CCR-PROV ' ELIG=' CER-PROV.
DISPLAY ' RUN TERMINATED.'.
GOBACK.

100-CAP-ELIG-MATCH.
these may change depending on how duplicates are
handled.
MOVE 'Y' TO NEED-CAP, NEED-ELG.
MOVE 'Y' TO NEED-ELG.

MOVE CER-PROV TO NRR-PROV.
MOVE CER-PRSN TO NRR-PRSN.
MOVE CCR-RATE TO NRR-RATE.
MOVE NRR-DLR TO WM-DLR.
MOVE NRR-CENTS TO WM-CENTS.
COMPUTE TOT-MONEY = TOT-MONEY + WORK-MONEY.
WRITE NEW-RATE-REC FROM NEW-RATE-REC-WORK.
COMPUTE NEW-RATE-RECS = NEW-RATE-RECS + 1.

GO TO 020-READ-CAP-RECORDS.

120-CAP-NOT-USED.
MOVE 'Y' TO NEED-CAP.

DISPLAY 'CAP RECORD NOT USED = ' COMP-CAP-REC.

MOVE CER-PROV TO NRR-PROV.
MOVE CER-PRSN TO NRR-PRSN.
MOVE CCR-RATE TO NRR-RATE.
WRITE NEW-RATE-REC FROM NEW-RATE-REC-WORK.
COMPUTE NEW-RATE-RECS = NEW-RATE-RECS + 1.

GO TO 020-READ-CAP-RECORDS.

140-GET-RATE.
MOVE 'Y' TO NEED-ELG.

MOVE CER-PROV TO NRR-PROV.
MOVE CER-PRSN TO NRR-PRSN.
MOVE ' 0.00' TO NRR-RATE.
WRITE NEW-RATE-REC FROM NEW-RATE-REC-WORK.
COMPUTE NEW-RATE-RECS = NEW-RATE-RECS + 1.
COMPUTE RATE-ZEROED = RATE-ZEROED + 1.

GO TO 020-READ-CAP-RECORDS.

990-PUBLISH-STATS.
DISPLAY 'CAP RECS READ = ' CAP-READ.
DISPLAY 'ELG RECS READ = ' ELG-READ.
DISPLAY 'NEW RECS = ' NEW-RATE-RECS.
DISPLAY 'ZEROED RATES = ' RATE-ZEROED.
DISPLAY 'TOTAL MONEY = ' TOT-MONEY.

9999-STOP.
CLOSE COMP-CAP COMP-ELG NEW-RATE.
GOBACK.

Is This Answer Correct ?    0 Yes 2 No

I have the requirement to compare the two files and pick up the matching records. File 1. ..

Answer / anupam

EVALUATE KEY1 > KEY2 ALSO KEY2 < KEY1
WHEN FALSE ALSO FALSE
READ F1 NEXT RECORD
READ F2 NEXT RECORD
WHEN TRUE ALSO FALSE
READ FILE1 NEXT RECORD
WHEN FALSE ALSO TRUE
READ FILE2 NEXT RECORD
END-EVALUATE

Is This Answer Correct ?    3 Yes 10 No

I have the requirement to compare the two files and pick up the matching records. File 1. ..

Answer / pradeep

read all the records of file1 and load into array

read the record of second file one at a time and search for
the value in the array(table) using search

if the value of the file matches with the value in the table
then write that record to output file

Is This Answer Correct ?    1 Yes 8 No

I have the requirement to compare the two files and pick up the matching records. File 1. ..

Answer / pa

load any of the file to the table and use SEARCH.
write the matching records to the output file.

Is This Answer Correct ?    4 Yes 13 No

Post New Answer

More COBOL Interview Questions

Why do we use COMP-3 variables for computation, when we know that they are non displayable fields and require additional MOVE to numeric field before we populate it in output Reports?

1 Answers   Accenture,


whats the disadvantage of search all over search?

4 Answers   Patni, TCS,


How can I tell if a module is being called DYNAMICALLY or STATICALLY?

3 Answers   CTS,


if a=b how the flow will complete??? perform test through test-exit. perform activa through activa-exit. test. if a=b then next sentence else move a to c. test-exit. exit. activa. -- -- activa-exit. exit.

1 Answers   IBM,


how many bytes does s9(7)COMP-3 field occupies?

6 Answers   ADP,






If A>B next sentence end-if display 1 display 2. display 3. If a>b, it will display only 3.(the next sentence, ie., after fullstop/period) ____________________________________ if a>b continue end-if display 1 display 2. display 3. If a>b, it Will display 1 2 3 (the next statement) ____________________________________ if a>b continue display 1 end-if display 2 display 3. display 4. If a>b, Will it display 2 3 4 (or) 1 2 3 4 ?

8 Answers   UST,


How to covert given string into ASCII value in COBOL/MF COBOL

3 Answers   CTS, IBM, iFlex,


What is the figurative constant in cobol?

1 Answers  


Hai friends why we need to read a file before re-write a record?

7 Answers   L&T,


Why IBM?

1 Answers   IBM,


Suppose i want to declare a binary comp fild of 7 byte .how to write?

6 Answers   IBM,


There are two flat files one having 10 records and other having 5 records. write a cobol pgm to find the duplicate records(matching records)from both files.

1 Answers   Mind Tree,


Categories