一个进货主表,一个进货细表,一个库存表.如果库存表里没有商品记录,那么把进货的商品资料写入库存表里,如果有把库存表里的数量同时更改
主表:进货单号,仓库号
细表:进货单号,商品号,商品名,进货价,进货数据,小计
库存表:仓库号,商品号,库存数量.

解决方案 »

  1.   

    什么数据库?
    要SQL语句??
      

  2.   

    if not EXISTS(select 商品号 from 库存表)
       insert into 库存表(...) values(...)
    --依次插入主表明细表
    --更新库存
    当然要加上事务
      

  3.   

    我想这样来设计:
    selce 进货主表.仓库号,进货细表.商品号 from 库存表 where 进货号:=进货号如里选择出来的仓库号没有那么自动添加仓库和商品数据量到库存表里,
    如果有仓库号没有商品号,也是自动添加商品数到库存表里。
    如果有仓库号也有商品号,那么更改数量。我不会用触发器,我想在命令按钮click里发生这样的事件.哪位老兄帮我写一下代码,分不够再加
      

  4.   

    用存储过程吧,只传一个进货单号
    进货主表:jh_zb
    进货细表:jh_mx
    库存表:kuccreate procedure jinhtokc
      @jh_no varchar(50)
    as
      declare @sp_no varchar(50)
      declare @ck_no varchar(50)
      declare @jh_sl numeric(18,3)
    begin
      begin tran
        select @ck_no=ck_no from jh_zb where jh_no=@jh_no
        declare cur_rk cursor for select sp_no,jh_sl from jh_mx where jh_no=@jh_no
        open cur_rk
        fetch next from cur_rk into @sp_no,@jh_sl
        while @@fetch_status=0 
        begin
          select * from kuc where ck_no=@ck_no and sp_no=@sp_no
          if @@rowcount > 0 
          begin
            update kuc set kc_sl=kc_sl+@jh_sl where ck_no=@ck_no and sp_no=@sp_no
            if @@error > 0 rollback tran
          end     
          else
          begin
            insert into kuc(ck_no,sp_no,kc_sl) values(@ck_no,@sp_no,@jh_sl) 
            if @@error > 0 rollback tran
          end
          fetch next from cur_rk into @sp_no,@jh_sl     
        end
        close cur_rk
        deallocate cur_rk
      commit tran
    end
      

  5.   

    总之你是要+上一个判断,可以在程序中,也可以在后台数据库。如果程序判断,则根据不同的判断条件提交不同SQL语句,如果在后台写就写存储过程。