零件信息表

Python012

零件信息表,第1张

一般来说库存操作单据和库存结余的联系都是通过客户端软件实现的,就是在入库单的审核操作按钮处加入SQL代码,如果你的不是这样,也可以通过触发器来实现,但是完善的流程应该包括在插入、修改和删除时都保证对零件信息表的更改。

1、CREATE TRIGGER Tr_入库表 ON 入库表

after insert,update,delete

AS

begin

update a set a.库存数量=a.库存数量 +b.入库数量

from 零件信息表 a,(select 零件号,sum(入库数量) 入库数量 from inserted group by 零件号 ) b --如果每次插入时零件号不重复,则不必聚合

where a.零件号 =b.零件号

go

update a set a.库存数量=a.库存数量 -b.入库数量

from 零件信息表 a,(select 零件号,sum(入库数量) 入库数量 from deleted group by 零件号 ) b --如果每次插入时零件号不重复,则不必聚合

where a.零件号 =b.零件号

go

end

2、CREATE TRIGGER Tr_出库表 ON 出库表

after insert,update,delete

AS

begin

update a set a.库存数量=a.库存数量 -b.出库数量

from 零件信息表 a,(select 零件号,sum(出库数量) 出库数量 from inserted group by 零件号 ) b --如果每次插入时零件号不重复,则不必聚合

where a.零件号 =b.零件号

go

update a set a.库存数量=a.库存数量 +b.出库数量

from 零件信息表 a,(select 零件号,sum(出库数量) 出库数量 from deleted group by 零件号 ) b --如果每次插入时零件号不重复,则不必聚合

where a.零件号 =b.零件号

go

end

首先,你插入触发器不需要这么多的变数,你写触发器不支持批量插入。 。可以:

创建一个

插入

插入B </触发章回

>选择项目没有,ITEM_NAME的,item_spec,item_full_name ITEM_TYPE,品牌从插入结束

GO

至于你删除了一个问题,我想这是你的B表删除触发器。

像这样的查询,你可以看看在B DELETE触发器操作

删除数据A执行,sp_helptrigger''

当入库数量>=库存数量???

列子中明显只是 当入库数量>库存数量 啊

试下

SELECT * FROM

(SELECT * ,SUM(入库量)OVER ((PARTITION BY DEPTNO 零件ID order BY 入库时间 ) AS 入库量,

SUM(库存数量) OVER (PARTITION by 零件ID order by入库时间) AS 总量 FROM 查询结果表 )x

WHERE 入库量<=总量