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

如何用触发器计算订单的毛利?

hzkjqz 发布于 2008-09-20 11:20, 1127 次点击
请大家帮忙:
    需求:需要在签订销售订单时计算这笔订单的毛利,(在销售订单保存时,将成本和毛利体现到订单的表体项上),关键是解决如何从记载成本单价的表中取数
    困难:由于刚知道触发器有这功用,想请各位老师帮忙写一下,作为学习的例子,
    资料:
成本表
ID    产品    入库日期    数量    成本单价    库存量
1    A    2008-4-10    150    1250    91
2    A    2008-5-25    840    1540    931
3    B    2008-6-3    250    1150    100
4    A    2008-7-9    369    1300    1300
5    B    2008-8-9    700    1500    800
6    B    2008-9-15    650    1400    1450

备注:库存量每天进行修正,如今天A产品的库存是1300,则将2008.4.10的入库数修正为91(1300-369-840)

订单表
ID    客户ID    订单日期    产品    数量    报价    成本    毛利
1    585    9月20日    A    50    1350    1250    100
此表的成本用触发器从成本表中取数,取数规则:先进先出,即取4月10日,1250的成本价,并更新成本表A产品库存量为41(91-50)
3 回复
#2
卜酷塔2008-09-21 22:33
use 数据库名
go
if Exists(select name from sysobjects where name=test)
drop trigger test
CREATE TRIGGER test
ON 订单表
FOR INSERT
AS
declare @order varchar(200)--订单价格
declare @basic varchar(200)--成本价格
select @order=报价 from INSERTED
--------修改下面一句-----------
select @basic=select 成本 from 成本表 where id=(select id from inserted)

   insert into 订单表(‘毛利’)values(@order-@basic)


楼主再看看行不?其实既然你能看出来有问题,为什么不自己写一个呢?


好久没写了,也不知道对不对。那位给点评一下。

[[it] 本帖最后由 卜酷塔 于 2008-9-23 10:08 编辑 [/it]]
#3
hzkjqz2008-09-22 22:32
不对吧,成本单价需要从成本表中取,至少需要建立订单表和成本表的关系(存货代码相同),请大家再指点一下,谢谢
#4
hzkjqz2008-09-25 22:06
偶这两天才学的,不懂啊
1