当前位置: 代码迷 >> Sql Server >> 关于触发器里的聚合有关问题
  详细解决方案

关于触发器里的聚合有关问题

热度:84   发布时间:2016-04-24 08:49:31.0
关于触发器里的聚合问题
大家好,有个问题请教。

有个表A,数据如下:
ID    name state  dept
1    张三     试用   销售部
2    张四    在职   销售部
3    张五    离职   财务部
4    张六    在职   销售部

表B
dept                在职人数
销售部                  NULL
财务部                  NULL

表字段解释:state代表在职状态,现在只需要取“在职”进行统计就可以
表A和表B通过dept进行关联

我要设置一个触发器自动同步,统计每个部门的在职人数。
也就是每增加一个人或者删除一个人,表B都能对应更新。

例如初始化的时候财务部是1人在职,如果我新增一个财务部的“在职”人员,则B表统计数据自动变成2.
请问这个触发器该怎么写呀。

------解决思路----------------------
create trigger dbo.tr_DeptCounter
on [表A]
after insert,update,delete 
as
begin
if exists(select 1 from inserted)
update [表B] set 在职人数=在职人数+1 where dept=inserted.dept

if exists(select 1 from deleted)
update [表B] set 在职人数=在职人数-1 where dept=inserted.dept
end
  相关解决方案