注册 登录
编程论坛 SQL Server论坛

求存储过程编写

huiying409 发布于 2012-07-14 10:24, 750 次点击
有三张表,原料外发加工单wwmatlist,原料外发出库单wwmatoutlist,原料外发入库单wwmatinlist.
wwmatlist主要字段有type(加工类型)matioid(加工单号),matid(加工物料编号),color(加工物料颜色),model(加工物料规格),price(加工单价),qty(待加工数量).wwmatoutlist主要字段有:wwid(加工单号),matioid(原料外发出库单号),wwmatid(加工单物料编号),wwcolor(加工物料颜色),wwmodel(加工物料规格),matid(出库物料编号),color(出库物料颜色),model(出库物料规格),price(出库物料单价),qty(出库物料数量)。wwmatinlist主要字段有:wwid(加工单号),matioid(原料外发入库单号),matid(入库物料编号),color(入库物料颜色),model(入库物料规格),price(入库物料单价),qty(入库数量)
三张表的关联为wwmatlist.matioid=wwmatoulist.wwid=wwmatinlist.wwid,wwmatlist.matid=wwmatoutlist.wwmatid=wwmatinlist.matid,wwmatlist.color=wwmatoutlist.wwcolor=wwmatinlist.color,
wwmatlist.model=wwmatoutlist.wwmodel=wwmatinlist.model.
求存储过程如下,当wwmatlist.type='01'时,原料外发入库时,自动更新入库物料单价price=(原料外发出库的数量*出库物料的单价+原料外发加工单价*原料外发出库的数量)/入库数量,当wwmatlist.type='02'时,自动更新入库物料单价price=(原料外发出库的数量*出库物料的单价+原料外发加工单价*原料外发入库的数量)/入库数量。
物料有可能是分批出库,分批入库的,例如说发出100公斤棉纱,织成200磅的布,再发出50公斤棉纱,织成100磅的布,最终的入库单价应该为(150公斤棉纱*棉纱单价+150公斤*织布加工单价)/300磅。后一次入库时计算得出的入库单价需自动更新替换前一次入库的价格。
本人初接触sql,请各位老师给予详细指点,不胜感激!!!

5 回复
#2
sk288173602012-07-14 10:52
我觉得使用触发器比较好吧
#3
huiying4092012-07-14 11:22
请教触发器该如何编写
#4
sk288173602012-07-14 14:53
我大概说下吧 手里没数据库。就是在原料外发加工单wwmatlist上建立一个触发器 检测这个表的insert 当插入的数据wwmatlist.type='01'时自动更新入库物料单价price=(原料外发出库的数量*出库物料的单价+原料外发加工单价*原料外发出库的数量)/入库数量。当wwmatlist.type='02'时,自动更新入库物料单价price=(原料外发出库的数量*出库物料的单价+原料外发加工单价*原料外发入库的数量)/入库数量
#5
netlin2012-07-15 06:29
使用触发器

有关触发器的内容可以参考“SQL联机丛书”,上面有详细介绍!
#6
huiying4092012-07-16 09:47
各位,我忘记说一下三张表的顺序了,实际操作时,是先做原料外发加工单,再做原料外发出库单,再做原料外发入库单。所以在原料外发加工单上设定触发条件是不合适的。要先入库了之后,再根据中间过程耗用物料多少,入库回来的物料多少,利用计算公式来更新入库单价。
1