zOs/SQL/CATDBALR

$#@                                                                     00010000
$=in1=~.wk.sql(catdbal1)                                                00020000
$=in2=~.wk.sql(catdbal2)                                                00030000
$=out=~.wk.sql(catdbal9)                                                00040002
call readDsn $in1, m.i1.                                                00050000
say $in1 m.i1.0                                                         00060000
call readDsn $in2, m.i2.                                                00070000
say $in2 m.i2.0                                                         00080000
x1 = 1                                                                  00090001
x2 = 1                                                                  00100001
m.o.0 = 0                                                               00110002
do while x1 <= m.i1.0 & x2 <= m.i2.0                                    00120002
    parse var m.i1.x1 pro1 cnt1 alt1 rst1                               00130002
    parse var m.i2.x2 pro2 db2 rst2  73 .                               00140003
    if pro1 == pro2 then                                                00150001
        call mAdd o, left(pro2, 8) left(db2, 8) left(alt1, 10)          00160002
    else if pro2 << pro1 then                                           00170002
        call mAdd o, left(pro2, 8) left(db2, 8) strip(rst2)             00180002
    x1 = x1 + (pro1 <<= pro2)                                           00190001
    x2 = x2 + (pro1 >>= pro2)                                           00200001
    end                                                                 00210001
do x2 = x2 to m.i2.0                                                    00220003
    parse var m.i2.x2 pro2 db2 rst2  73 .                               00230003
    call mAdd o, left(pro2, 8) left(db2, 8) strip(rst2)                 00240003
    end                                                                 00250003
call writeDsn $out, m.o., ,1                                            00260002
$#out                                              20120419 16:26:54    00270004
$#out                                              20120419 16:21:30    00280003
$#out                                              20120419 16:19:02    00290002