0% found this document useful (1 vote)
307 views

COBOL DB2 Program

This program generates a report summarizing transaction details from a bank database. It retrieves data from the TRANSACTION and ACCOUNTS tables, such as total deposits/withdrawals over time, current date transactions, number of open/closed accounts, and account details for the maximum balance, deposit, and withdrawal. The results are displayed in sections for details till date and for the current date.

Uploaded by

lokeshscribd186
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (1 vote)
307 views

COBOL DB2 Program

This program generates a report summarizing transaction details from a bank database. It retrieves data from the TRANSACTION and ACCOUNTS tables, such as total deposits/withdrawals over time, current date transactions, number of open/closed accounts, and account details for the maximum balance, deposit, and withdrawal. The results are displayed in sections for details till date and for the current date.

Uploaded by

lokeshscribd186
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 4

000010******************************************************************00001009

000011**
IDENTIFICATION DIVISION
**00001109
000020******************************************************************00002009
000030
00003009
000100 ID DIVISION.
00010009
000200 PROGRAM-ID. E710RPTS.
00020001
000303
00030309
000310******************************************************************00031009
000311**
DATA DIVISION
**00031109
000320******************************************************************00032009
000330
00033009
000400 DATA DIVISION.
00040001
000410
00041009
000420******************************************************************00042009
000430**
WORKING-STORAGE SECTION
**00043009
000440******************************************************************00044009
000450
00045009
000500 WORKING-STORAGE SECTION.
00050001
000510
00051009
000520***
INCLUDE THE DCLGEN MEMBER
**00052009
000530
00053009
000600
EXEC SQL
00060001
000700
INCLUDE E710ACCT
00070001
000800
END-EXEC
00080001
000810
00081009
000900
EXEC SQL
00090001
001000
INCLUDE E710TRNS
00100001
001100
END-EXEC
00110001
001101
00110109
001102
EXEC SQL
00110204
001103
INCLUDE SQLCA
00110304
001104
END-EXEC
00110404
001105
00110509
001106**
VARIABLES USED IN THE PROGRAM
***00110609
001107
00110709
001110 01 WS-DATE
PIC X(10).
00111009
001111 01 WS-TEMP1
PIC 9(8)V9(2).
00111109
001112 01 WS-TEMP2
PIC 9(8)V9(2).
00111209
001120 01 WS-01-DEPOSIT
PIC Z(8).9(2).
00112009
001130 01 WS-01-WITHDRAW
PIC Z(8).9(2).
00113009
001140 01 WS-02-DEPOSIT
PIC Z(8).9(2).
00114009
001150 01 WS-02-WITHDRAW
PIC Z(8).9(2).
00115009
001160 01 WS-01-TOTAMT
PIC Z(8).9(2).
00116009
001170 01 WS-02-TOTAMT
PIC Z(8).9(2).
00117009
001180 01 WS-01-OPEN
PIC 9(8)V9(2).
00118009
001181 01 WS-01-ACT-TOT
PIC S9(2) COMP.
00118109
001190 01 WS-01-ACT-OPEN
PIC S9(2) COMP.
00119009
001191 01 WS-01-ACT-CLOSE
PIC S9(2) COMP.
00119109
001192 01 WS-02-ACT-OPEN
PIC S9(2) COMP.
00119209
001193 01 WS-02-ACT-CLOSE
PIC S9(2) COMP.
00119309
001194 01 WS-MAX-BAL
PIC Z(8).9(2).
00119409
001195 01 WS-MAX-ACCT
PIC X(5).
00119509
001196 01 WS-OPEN
PIC S9(2).
00119609
001197 01 WS-CLOSED
PIC S9(2).
00119709
001198 01 WS-M-W-BAL
PIC Z(8).9(2).
00119809
001199 01 WS-M-W-ACCT
PIC X(5).
00119909
001200 01 WS-M-D-BAL
PIC Z(8).9(2).
00120009
001201 01 WS-M-D-ACCT
PIC X(5).
00120109
001202
00120209
001203******************************************************************00120309

001204**
PROCEDURE DIVISION
**00120409
001205******************************************************************00120509
001206
00120609
001210 PROCEDURE DIVISION.
00121001
001300 A000-MAIN-PARA.
00130001
001301
00130109
001302**** TO GET THE CURRENT DATE FROM THE SYSTEM
****00130209
001303
00130309
001304
EXEC SQL
00130404
001305
SELECT CURRENT DATE INTO :WS-DATE FROM SYSIBM.SYSDUMMY1
00130504
001306
END-EXEC
00130604
001401
00140109
001402**** TOTAL AMOUNT DEPOSITED IN THE BANK TILL DATE
****00140209
001403
00140309
001404
EXEC SQL
00140404
001405
SELECT SUM(TRANSAMT) INTO :WS-T-TRANSAMT
00140504
001406
FROM TRANSACTION
00140604
001407
WHERE TRANSTYPE = 'D'
00140704
001408
END-EXEC
00140804
001409
00140909
001410
MOVE WS-T-TRANSAMT TO WS-TEMP1
00141006
001420
MOVE WS-T-TRANSAMT TO WS-01-DEPOSIT
00142004
001421
00142109
001434**** TOTAL AMOUNT WITHDRAWN FROM THE BANK TILL DATE
****00143409
001435
00143509
001436
EXEC SQL
00143604
001437
SELECT SUM(TRANSAMT) INTO :WS-T-TRANSAMT
00143704
001438
FROM TRANSACTION
00143804
001439
WHERE TRANSTYPE = 'W'
00143904
001440
END-EXEC
00144004
001441
00144109
001442
MOVE WS-T-TRANSAMT TO WS-TEMP2
00144206
001443
MOVE WS-T-TRANSAMT TO WS-01-WITHDRAW
00144304
001444
00144409
001445**** TO CALCULATE THE AMOUNT IN THE BANK TILL DATE
****00144509
001446
00144609
001447
SUBTRACT WS-TEMP2 FROM WS-TEMP1 GIVING WS-01-TOTAMT
00144706
001448
00144809
001449**** TOTAL AMOUNT DEPOSITED IN THE BANK ON CURRENT DATE
****00144909
001450
00145009
001451
EXEC SQL
00145104
001452
SELECT SUM(TRANSAMT) INTO :WS-T-TRANSAMT
00145204
001453
FROM TRANSACTION
00145304
001454
WHERE TRANSTYPE = 'D' AND TRANSDATE = :WS-DATE
00145405
001455
END-EXEC
00145504
001456
00145609
001457
MOVE WS-T-TRANSAMT TO WS-TEMP1
00145706
001458
MOVE WS-T-TRANSAMT TO WS-02-DEPOSIT
00145804
001459
00145909
001460**** TOTAL AMOUNT WITHDRAWN FROM THE BANK ON CURRENT DATE
****00146009
001461
00146109
001462
EXEC SQL
00146204
001463
SELECT SUM(TRANSAMT) INTO :WS-T-TRANSAMT
00146304
001464
FROM TRANSACTION
00146404
001465
WHERE TRANSTYPE = 'W' AND TRANSDATE = :WS-DATE
00146505
001466
END-EXEC
00146604
001467
00146709
001468
MOVE WS-T-TRANSAMT TO WS-TEMP2
00146806
001469
MOVE WS-T-TRANSAMT TO WS-02-WITHDRAW
00146904
001470
00147009

001472****
001473
001474
001475
001476****
001477
001478
001479
001480
001481
001482
001483
001484****
001485
001486
001487
001488
001489
001490
001491
001492****
001493
001494
001495
001496
001497
001498
001499
001500
001501****
001502
001503
001504
001505
001506
001507
001508
001509
001510****
001511
001512
001513
001514
001515
001516
001517
001518
001519
001520
001521
001522****
001523****
001524
001525
001526
001527
001528
001529
001530
001531

TO CALCULATE THE AMOUNT IN THE BANK FOR CURRENT DATE

****00147209
00147309
SUBTRACT WS-TEMP2 FROM WS-TEMP1 GIVING WS-02-TOTAMT
00147406
00147509
TO CALCULATE THE NUMBER OF ACCOUNTS IN THE BANK TILL DATE****00147609
00147709
EXEC SQL
00147807
SELECT COUNT(*) INTO :WS-01-ACT-TOT
00147909
FROM TRANSACTION
00148007
WHERE TRANSTYPE = 'O'
00148107
END-EXEC
00148207
00148309
TO CALCULATE THE NUMBER OF ACCOUNTS CLOSED TILL DATE
****00148409
00148509
EXEC SQL
00148607
SELECT COUNT(*) INTO :WS-01-ACT-CLOSE
00148707
FROM TRANSACTION
00148807
WHERE TRANSTYPE = 'L'
00148907
END-EXEC
00149007
00149109
TO CALCULATE THE NUMBER OF ACCOUNTS OPENED TODAY
****00149209
00149309
EXEC SQL
00149407
SELECT COUNT(*) INTO :WS-02-ACT-OPEN
00149507
FROM TRANSACTION
00149607
WHERE TRANSTYPE = 'O'
00149707
AND TRANSDATE = :WS-DATE
00149807
END-EXEC
00149907
00150009
TO CALCULATE THE NUMBER OF ACCOUNTS CLOSED TODAY
****00150109
00150209
EXEC SQL
00150307
SELECT COUNT(*) INTO :WS-02-ACT-CLOSE
00150407
FROM TRANSACTION
00150507
WHERE TRANSTYPE = 'L'
00150607
AND TRANSDATE = :WS-DATE
00150707
END-EXEC
00150807
00150909
TO FIND THE ACCOUNT NUMBER WITH MAXIMUM BALANCE
****00151009
00151109
EXEC SQL
00151208
SELECT ACCOUNTNO, BALANCE
00151308
INTO :WS-A-ACCOUNTNO,:WS-A-BALANCE
00151408
FROM ACCOUNTS
00151509
WHERE BALANCE = ( SELECT MAX(BALANCE) FROM ACCOUNTS )
00151609
END-EXEC
00151708
00151809
MOVE WS-A-ACCOUNTNO TO WS-MAX-ACCT
00151909
MOVE WS-A-BALANCE TO WS-MAX-BAL
00152009
00152109
TO FIND THE ACCOUNT NUMBER WITH MAXIMUM WITHDRAWAL AMOUNT****00152209
ON CURRENT DATE
****00152309
00152409
EXEC SQL
00152509
SELECT ACCOUNTNO, TRANSAMT
00152609
INTO :WS-T-ACCOUNTNO,:WS-T-TRANSAMT
00152709
FROM TRANSACTION
00152809
WHERE TRANSAMT = ( SELECT MAX(TRANSAMT)
00152909
FROM TRANSACTION WHERE TRANSTYPE = 'W'
00153009
AND TRANSDATE = :WS-DATE)
00153109

001532
END-EXEC
00153209
001533
00153309
001534
MOVE WS-T-ACCOUNTNO TO WS-M-W-ACCT
00153409
001535
MOVE WS-T-TRANSAMT TO WS-M-W-BAL
00153509
001536
00153609
001537**** TO FIND THE ACCOUNT NUMBER WITH MAXIMUM DEPOSIT AMOUNT ****00153709
001538**** ON CURRENT DATE
****00153809
001539
00153909
001540
EXEC SQL
00154009
001541
SELECT ACCOUNTNO, TRANSAMT
00154109
001542
INTO :WS-T-ACCOUNTNO,:WS-T-TRANSAMT
00154209
001543
FROM TRANSACTION
00154309
001544
WHERE TRANSAMT = ( SELECT MAX(TRANSAMT)
00154409
001545
FROM TRANSACTION WHERE TRANSTYPE = 'D'
00154509
001546
AND TRANSDATE = :WS-DATE)
00154609
001547
END-EXEC
00154709
001548
00154809
001549
MOVE WS-T-ACCOUNTNO TO WS-M-D-ACCT
00154909
001550
MOVE WS-T-TRANSAMT TO WS-M-D-BAL
00155009
001551
00155109
001552*** TO CALCULATE THE TOTAL NUMBER OF ACCOUNTS ACTIVE TILL DATE **00155209
001553
00155309
001554
SUBTRACT WS-01-ACT-CLOSE FROM WS-01-ACT-TOT
00155409
001555
GIVING WS-01-ACT-OPEN
00155509
001556
00155609
001557
DISPLAY ' ************************************************* '00155709
001558
DISPLAY '
DETAILS TILL DATE
'00155809
001559
DISPLAY ' ************************************************* '00155909
001560
DISPLAY ' TOTAL AMOUNT DEPOSITED
: ' WS-01-DEPOSIT 00156009
001561
DISPLAY ' TOTAL AMOUNT WITHDRAWN
: ' WS-01-WITHDRAW 00156109
001562
DISPLAY ' TOTAL AMOUNT IN BANK
: ' WS-01-TOTAMT
00156209
001563
DISPLAY ' TOTAL NO OF ACCOUNTS IN BANK : ' WS-01-ACT-TOT 00156309
001564
DISPLAY ' TOTAL NO OF ACCOUNTS OPENED
: ' WS-01-ACT-OPEN 00156409
001565
DISPLAY ' TOTAL NO OF ACCOUNTS CLOSED
: ' WS-01-ACT-CLOSE 00156509
001566
DISPLAY ' ************************************************* '00156609
001567
DISPLAY '
'00156709
001568
DISPLAY ' ************************************************* '00156809
001569
DISPLAY '
DETAILS FOR TODAY
'00156909
001570
DISPLAY ' ************************************************* '00157009
001571
DISPLAY ' TOTAL AMOUNT DEPOSITED
: ' WS-02-DEPOSIT
00157109
001572
DISPLAY ' TOTAL AMOUNT WITHDRAWN
: ' WS-02-WITHDRAW
00157209
001573
DISPLAY ' TOTAL AMOUNT REMAINING
: ' WS-02-TOTAMT
00157309
001574
DISPLAY ' TOTAL NO OF ACCOUNTS OPENED : ' WS-02-ACT-OPEN
00157409
001575
DISPLAY ' TOTAL NO OF ACCOUNTS CLOSED : ' WS-02-ACT-CLOSE
00157509
001576
DISPLAY ' ************************************************* '00157609
001577
DISPLAY '
'00157709
001578
DISPLAY ' ACCOUNT DETAILS FOR MAXIMUM BALANCE ACCOUNT '
00157809
001579
DISPLAY ' ACCOUNT NO : ' WS-MAX-ACCT
00157909
001581
DISPLAY ' BALANCE
: ' WS-MAX-BAL
00158109
001582
DISPLAY '
'00158209
001583
DISPLAY ' ACCOUNT DETAILS WITH MAXIMUM DEPOSIT AMOUNT '
00158309
001584
DISPLAY ' ACCOUNT NO : ' WS-M-D-ACCT
00158409
001585
DISPLAY ' BALANCE
: ' WS-M-D-BAL
00158509
001586
DISPLAY '
'00158609
001587
DISPLAY ' ACCOUNT DETAILS WITH MAXIMUM WITHDRAWAL AMOUNT ' 00158709
001588
DISPLAY ' ACCOUNT NO : ' WS-M-W-ACCT
00158809
001589
DISPLAY ' BALANCE
: ' WS-M-W-BAL
00158909
001590
STOP RUN
00159004
001600
.
00160004

You might also like