触发器可以完成
同时也要考虑删除消费明细表数据时也需要把账单表计费项目中减少相应费用
如果是程序中调用
可以写成存储过程
但是是以单据号来对应还是personid对应还是存货id对应
当做参数传递
然后写上更新语句即可
假设以单据号(voucherno)对应,没有经过验证,只是参考
CREATE PROCEDURE PROCEDURENAME
@voucherno CHAR(50)
AS
update 账单表 set 消费额= 消费额+(select 消费明细表金额 from 消费明细表
where 消费单号=@voucherno) where
消费单号=@voucherno
GO
具体可以根据需求自行更改,只写了添加没有写删除的,可以把删除或添加的金额也作为参数传递,然后更新时加或减即可
你这个功能最好是用触发器
CREATE TRIGGER 触发器名
ON 消费明细表
FOR INSERT
AS
update 账单表 set 消费额= 消费额+(select 消费明细表金额 from inserted where) where
消费单号=(select 消费单号 from inserted)
GO