设有商品表(商品号,商品名,单价)、销售表(商品号,销售时间,销售数量,销售单价)和毛利表(商品号,总毛利)。设单价,销售数量,销售单价和总毛利为整型,毛利表中已有全部商品的商品号记录且总毛利的初始值均为0.现有业务要求:每当在销售表中插入一行数据时,系统自动计算该商品的总毛利,毛利=销售数量*(销售单价-单价)。请定义满足该要求的后触型触发器。

解决方案 »

  1.   

    create tigger test on 销售表
    after insert
    as
    beginselect i.销售数量*(i.销售单价-a.单价) as 总毛利 from 商品表 a join inserted i on a.商品号=i.商品号end
    --毛利表在这里起什么作用
      

  2.   

    tryCREATE TRIGGER tri_test
       ON  销售表 
       AFTER INSERT
    AS 
    BEGIN
    SET NOCOUNT ON;    declare @sell_price int,@product_price int
        declare @product_code varchar(32)
        declare @sell_qty int
        select @sell_price =sell_price,@sell_qty=qty,@product_code=product_code from inserted 
        select @product_price=product_price from 商品表 where product_code=@product_code
        if exists (select 1 from 毛利表 where product_code=@product_code)
        begin
    update 毛利表 set 总毛利=总毛利+@sell_qty*(@sell_price-@product_price) where  product_code=@product_code
        end
        else
        begin
    insert into 毛利表 select @product_code,@sell_qty*(@sell_price-@product_price)
        end
        END
    GO