1.修改编码为0001的年假规则人员的2009年的年假数据为未结转状态
update t_hr_yvbalance set fstatus = 0 where
fpersonid in
(
select fpersonid from T_HR_YVPerson yperson
inner join T_HR_YVRule yrule on yrule.fid = yperson.FYvRuleID
where yrule.Fnumber='1004'
)
and fyear=2012
2.删除编码为00001的年假规则的年假人员2010年的年假数据
delete from t_hr_yvbalance
where fpersonid in
(
select fpersonid from T_HR_YVPerson yperson
inner join T_HR_YVRule yrule on yrule.fid = yperson.FYvRuleID
where yrule.Fnumber='1004'
)
and fyear = 2013
说明:
1.以上两段脚本的执行顺序是可以任意的。
2.yrule.Fnumber 年假规则编码
3.修改的这段脚本,这里的fyear填写的是需要恢复的当前年假
4.删除的这段脚本,这里的fyear填写的是需要删除的年假
5.例如不小心结转到了2010年,需要返回2009年,且年假规则的编码是00001,则使用以上的脚本进行处理。
找出数据为0的人员,
select * from t_hr_yvbalance where fyear=2012 and
select fid,fname_l2 from t_bd_person where fnumber = 'DJ20110201292'
or fnumber = 'DJ20110801705'
然后删除这些人员的年假数据。
delete t_hr_yvbalance
where fyear=2012 and fpersonid in (select fid from t_bd_person where fnumber = 'DJ20110201292'
or fnumber = 'DJ20110801705')