日期:2014-05-18  浏览次数:20581 次

利用触发器如何实现分不同类型的数据插入不同的表中
有两张源表(以fnumber字段关联):
表一:pd。表头有两个字段
fnumber(单据号,主键,唯一),fstock(仓库)
表二:pdmx。表体
fnumber(单据号),fitemid(商品编号),pyqty(盘盈数量),pkqty(盘亏数量)

有四张目标表(以fnumber字段关联)
表一:py。盘盈表头,有两个字段
fnummber(单据号,主键,唯一),fstock(仓库)
表二:pymx。盘盈表体
fnumber(单据号),fitemid商品编号),qty(数量)

表三:pk。盘亏表头
fnummber(单据号,主键,唯一),fstock(仓库)
表四:pkmx。盘亏表体
fnumber(单据号),fitemid商品编号),qty(数量)

我的想法是,在源表中做触发器,把pdmx中盘盈数量大于0的数据插入到目标表的pymx,同时把pd插入到py。相应的把pdmx表中盘亏数量大于0的数据插入到pkmx中,也同时把pd插入到pk中。
我不能解决的问题是,当pdmx有多种商品,不同的商品有的是盘盈,有的是盘亏,无法分离。

请教高手帮助。如何解决此问题。能写出代码最好。
先谢!



------解决方案--------------------
SQL code

insert into py
 select b.* 
 from inserted a
 inner join pd b on a.fnumber=b.fnumber
 where a.pyqty>0

insert into pk
 select b.* 
 from inserted a
 inner join pd b on a.fnumber=b.fnumber
 where a.pkqty>0