OK didnt realize that I need this to be sequential. So below I have attempted to do that but when I run the numbers I get -1 on all my MIF_ORDQUAN no matter what MIF_PARTNUM. If anyone out there could point out what could be wrong with the Procedure.
----------------------------------
DSCMOF3c table
MOF_ORDERNUM char(10),
MOF_CUSTNUM char(8),
MOF_DATE date,
MOF_PARTNUM numeric(10),
MOF_ORDQUAN numeric(5));
----------------------------
DSCMIF3c Table
MIF_PARTNUM numeric(10),
MIF_DESCRIPTION char(20),
MIF_QUANHAND numeric(4),
MIF_ORDERPT numeric(4),
MIF_ORDQUAN numeric(4),
MIF_PRICE numeric(8,2),
MIF_COST numeric(8,2),
MIF_CLASS char(1));
---------------------------
drop procedure DSCLab3c;
create procedure DSCLab3c is
ws_ORDERNUM CHAR(10);
ws_PARTNUM NUMBER(10);
ws_ORDQUAN NUMBER(5);
WS_QOH NUMBER(5);
WS_MIFPARTNUM NUMBER(10);
cursor MOFCUR is
select MOF_ORDERNUM, MOF_PARTNUM, MOF_ORDQUAN from DSCMOF3C
order by MOF_PARTNUM;
cursor MIFCUR is
select MIF_QUANHAND,MIF_PARTNUM from DSCMIF3C
order by MIF_PARTNUM;
BEGIN
OPEN MOFCUR;
OPEN MIFCUR;
LOOP
FETCH MIFCUR INTO WS_QOH,WS_MIFPARTNUM;
IF MIFCUR%NOTFOUND THEN
null;
goto eofmif;
END IF;
LOOP
Fetch MOFCUR INTO ws_ORDERNUM,ws_PARTNUM,ws_ORDQUAN;
IF MOFCUR%NOTFOUND THEN
NULL;
EXIT;
ELSE
if WS_MIFPARTNUM = WS_PARTNUM THEN
update DSCMIF3C set DSCMIF3C.MIF_QUANHAND = (WS_QOH - ws_ORDQUAN)
where WS_MIFPARTNUM = ws_PARTNUM;
END IF;
END IF;
END LOOP;
END LOOP;
close MOFCUR;
CLOSE MIFCUR;
<<EOFMIF>>
CLOSE MIFCUR;
end DSCLab3c;
/
----------------------------------
DSCMOF3c table
MOF_ORDERNUM char(10),
MOF_CUSTNUM char(8),
MOF_DATE date,
MOF_PARTNUM numeric(10),
MOF_ORDQUAN numeric(5));
----------------------------
DSCMIF3c Table
MIF_PARTNUM numeric(10),
MIF_DESCRIPTION char(20),
MIF_QUANHAND numeric(4),
MIF_ORDERPT numeric(4),
MIF_ORDQUAN numeric(4),
MIF_PRICE numeric(8,2),
MIF_COST numeric(8,2),
MIF_CLASS char(1));
---------------------------
drop procedure DSCLab3c;
create procedure DSCLab3c is
ws_ORDERNUM CHAR(10);
ws_PARTNUM NUMBER(10);
ws_ORDQUAN NUMBER(5);
WS_QOH NUMBER(5);
WS_MIFPARTNUM NUMBER(10);
cursor MOFCUR is
select MOF_ORDERNUM, MOF_PARTNUM, MOF_ORDQUAN from DSCMOF3C
order by MOF_PARTNUM;
cursor MIFCUR is
select MIF_QUANHAND,MIF_PARTNUM from DSCMIF3C
order by MIF_PARTNUM;
BEGIN
OPEN MOFCUR;
OPEN MIFCUR;
LOOP
FETCH MIFCUR INTO WS_QOH,WS_MIFPARTNUM;
IF MIFCUR%NOTFOUND THEN
null;
goto eofmif;
END IF;
LOOP
Fetch MOFCUR INTO ws_ORDERNUM,ws_PARTNUM,ws_ORDQUAN;
IF MOFCUR%NOTFOUND THEN
NULL;
EXIT;
ELSE
if WS_MIFPARTNUM = WS_PARTNUM THEN
update DSCMIF3C set DSCMIF3C.MIF_QUANHAND = (WS_QOH - ws_ORDQUAN)
where WS_MIFPARTNUM = ws_PARTNUM;
END IF;
END IF;
END LOOP;
END LOOP;
close MOFCUR;
CLOSE MIFCUR;
<<EOFMIF>>
CLOSE MIFCUR;
end DSCLab3c;
/