当导入下一月份的奖励时,假如导入2月份奖励表月份 编号 名字    奖励费
201202 001 李四   3500
201202 002 张三   4500自动将下表更新,更新方式为:将上月的余额加到本月的奖励费,生成本月总的奖励费:2月份总的奖励费=2月份新发的奖励费+1月份的余额月份 编号 名字 可报数 已报数 余额
201201 001 李四 3000  300   2700
201201 002 张三 1500  800   700
201202 001 李四 6200  
201202 002 张三 5200请问各位大哥,每导入当月的奖励费用,自动将上月的余额加到本月新发的奖励费,生成总的奖励费?该如何实现

解决方案 »

  1.   


    create table tb
    (
    月份 varchar(6),
    编号 varchar(3),
    名字 nvarchar(3),
    可报数 int,
    已报数 int,
    余额 int
    )
    go
    create trigger tr_tb_insert on tb 
    for insert
    AS
    begin
      
       update c set c.可报数= a.可报数 + isnull((select top 1 余额 from tb b where a.编号 =b.编号 and a.月份 >b.月份 order by b.月份 desc ),0) from inserted a ,tb c where a.月份=c.月份 and a.编号=c.编号endinsert into tb
    select '201201','001', '李四', 3000, 300, 2700 union all
    select '201201','002','张三' ,1500, 800, 700select * from tb月份     编号   名字   可报数         已报数         余额
    ------ ---- ---- ----------- ----------- -----------
    201201 001  李四   3000        300         2700
    201201 002  张三   1500        800         700
    insert into tb
    select '201202','001', '李四', 3500, null, null union all
    select '201202','002', '张三', 4500, null, null
     
    select * from tb月份     编号   名字   可报数         已报数         余额
    ------ ---- ---- ----------- ----------- -----------
    201201 001  李四   3000        300         2700
    201201 002  张三   1500        800         700
    201202 001  李四   6200        NULL        NULL
    201202 002  张三   5200        NULL        NULL