有两个表:
A(图书名称,销售金额,客户编号等)
B(客户编号,累计购书金额)
想用触发器使得每一次 客户买书,都会把本次销售金额累加到累计购书金额里
下面的代码貌似不对,该怎么改
ALTER TRIGGER 累计金额
ON 销售信息
for INSERT
AS
BEGIN
declare @客户编号 varchar(30) ,@图书名称 varchar(30) ,@销售金额 numeric(18, 2)
select @客户编号=@客户编号
update 客户 set 累计购书金额=累计购书金额+@销售金额 where 客户编号=@客户编号
END
A(图书名称,销售金额,客户编号等)
B(客户编号,累计购书金额)
想用触发器使得每一次 客户买书,都会把本次销售金额累加到累计购书金额里
下面的代码貌似不对,该怎么改
ALTER TRIGGER 累计金额
ON 销售信息
for INSERT
AS
BEGIN
declare @客户编号 varchar(30) ,@图书名称 varchar(30) ,@销售金额 numeric(18, 2)
select @客户编号=@客户编号
update 客户 set 累计购书金额=累计购书金额+@销售金额 where 客户编号=@客户编号
END
ON 销售信息
for INSERT
AS
BEGIN
declare @客户编号 varchar(30) ,@图书名称 varchar(30) ,@销售金额 numeric(18, 2)
select @客户编号=客户编号,@销售金额 = 销售金额 from inserted
update 客户 set 累计购书金额=累计购书金额+@销售金额 where 客户编号=@客户编号
END
ALTER TRIGGER 累计金额
ON 销售信息
for INSERT
AS
BEGIN
UPDATE 客户
SET 客户.累计购书金额=ISNULL(客户.累计购书金额,0)+I.销售金额
FROM (SELECT 客户编号,SUM(销售金额) AS 销售金额 FROM INSERTED GROUP BY 客户编号) I
WHERE 客户.客户编号=I.客户编号
END
GO
AS
BEGIN
update 客户 set 累计购书金额 = 累计购书金额 + i.销售金额 from 客户 k , inserted i where k.客户编号 = i.客户编号
END