问题 问答题

设有商品表(商品编号,商品名,进货单价,销售单价)、销售表(商品编号,销售时间,销售数量)和商品利润表(商品编号,总利润)。设进货单价、销售数量、销售单价和总利润均为整型,商品编号和商品名的类型均为varchar(20)。总利润的默认值为0。请编写完成下列功能的存储过程:根据给定的商品编号修改对应商品的总利润。

答案

参考答案:存储过程:
creat proc profit
@goodid varchar(20),profit int=0
@intprice int,@outtprice int,@quantity int,
as
update profit set profit=@profit
Where goodid in(
SELECT
goodid,@profit=sum((good. outprice—good. inprice)* sale.quantity)
FROM good join sale on good.goodid=sale.goodid
join profit on profit.goodid=sale.goodid
where good.goodid=@goodid)
go

解析: 总利润=销售出去的物品数量*(销售单价-进货单价)
销售的物品数量在销售表中,销售单价在进货单价在商品表中。
假设商品表good(goodid(商品编号),name(商品名称),inprice(进货单价),outpfice(销售单价))。
销售表为sale(goodid(商品编号),date(销售时间),quantity(销售数量))。
利润表profit(goodid(商品编号),profit(商品总利润))。

填空题
判断题