先看下需求:入库表主表(入库编号,入库日期,保管员,供应商,采购员)
入库表从表(入库编号,物料编号,入库数量)
帐表(年,月,物料编号,期初数量,入库数量,出库数量,库存量)
我是这样做的:先插入入库单主表,再循环插入入库单从表,每插入从表一条,同时执行存储过程一次;
存储过程如下:y 年,m 月 ,id 商品编号 ,num 入库数量
create or replace procedure p
(y gsp_count.CT_YEAR%type, m gsp_count.CT_MONTH%type, id gsp_count.CGD_ID%type, num gsp_count.CT_INPUTNUM%type)
as i number;
begin
select count(*) into i from gsp_count where CGD_Id=id AND CT_Year=y AND CT_Month=m;
if i=0 then
insert into gsp_count values (id,y,m,0,num,0,num);//帐中不存在,则插入
else
update gsp_count set CT_InPutNum=CT_InPutNum+num where CGD_Id=id AND CT_Year=y AND CT_Month=m;//更新帐
update gsp_count set CT_FINALNUM =CT_INPUTNUM+ CT_PRENUM ;
end if;
end;
/感觉这样做,不太好,如果写帐表失败,我前面的操作已经执行,那就会造成账数据,请问高手是怎么处理 从插入主表,从表,到存储过程整个过程的 。。上面是增加入库单 ,下面讲讲更该入库单整个过程 。
先查询得到更改前的入库单日期,然后更改入库单主表 。然后查询入库单从表 ,可以得到商品编号,和数量 ,
然后先更新入库单从表 ,同样没执行一次,更新一下帐,
大家对我的逻辑给些好的建议 ,以及自己是如何做主从表的 增 ,删改 的存储过程的 ?小第向大家学习,先谢谢了,
入库表从表(入库编号,物料编号,入库数量)
帐表(年,月,物料编号,期初数量,入库数量,出库数量,库存量)
我是这样做的:先插入入库单主表,再循环插入入库单从表,每插入从表一条,同时执行存储过程一次;
存储过程如下:y 年,m 月 ,id 商品编号 ,num 入库数量
create or replace procedure p
(y gsp_count.CT_YEAR%type, m gsp_count.CT_MONTH%type, id gsp_count.CGD_ID%type, num gsp_count.CT_INPUTNUM%type)
as i number;
begin
select count(*) into i from gsp_count where CGD_Id=id AND CT_Year=y AND CT_Month=m;
if i=0 then
insert into gsp_count values (id,y,m,0,num,0,num);//帐中不存在,则插入
else
update gsp_count set CT_InPutNum=CT_InPutNum+num where CGD_Id=id AND CT_Year=y AND CT_Month=m;//更新帐
update gsp_count set CT_FINALNUM =CT_INPUTNUM+ CT_PRENUM ;
end if;
end;
/感觉这样做,不太好,如果写帐表失败,我前面的操作已经执行,那就会造成账数据,请问高手是怎么处理 从插入主表,从表,到存储过程整个过程的 。。上面是增加入库单 ,下面讲讲更该入库单整个过程 。
先查询得到更改前的入库单日期,然后更改入库单主表 。然后查询入库单从表 ,可以得到商品编号,和数量 ,
然后先更新入库单从表 ,同样没执行一次,更新一下帐,
大家对我的逻辑给些好的建议 ,以及自己是如何做主从表的 增 ,删改 的存储过程的 ?小第向大家学习,先谢谢了,
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货