解决方案: |
"结转考勤业务的时候首先将考勤的所有数据复制到下一个年度帐,然后将不需要的数据从第二年度帐中删除。 鉴于该用户考勤数据量较大,为了能够尽快完成年结,建议采用如下方法结转(在一段时间以后会发布数据卸载工具,利用该工具可以完全解决该问题): 1、将2005年度帐的如下表的数据备份(保持所有表的结构、外键关系不变) 请假 hr_tm_leave 休假 hr_tm_vac 出差 hr_tm_errand 刷卡数据 hr_tm_oricarddata 日结果 hr_tm_DayResult 加班结果 hr_tm_overtimeresult 加班安排 hr_tm_overtime 加班时段 hr_tm_overtimeperiod 2、在2005年度帐,运行报错的时候执行的语句:"delete from hr_tm_leave where datediff(d,dEndDate,'2005-12-31')>=0 delete from hr_tm_vac where datediff(d,dEndDate,'2005-12-31')>=0 delete from hr_tm_errand where datediff(d,dEndDate,'2005-12-31')>=0 delete from hr_tm_oricarddata where datediff(d,dDateTime,'2005-12-31')>=0 delete from hr_tm_DayResult where datediff(d,dDutyDate,'2005-12-31')>=0 delete from hr_tm_overtimeresult where uOverTimeCode in (select uOvertimeCode from hr_tm_overtime where datediff(d,dJbDate,'2005-12-31')>=0) delete from hr_tm_overtime where datediff(d,dJbDate,'2005-12-31')>=0 delete from hr_tm_monthresult where cYear<'2005' " 3、执行年结程序 4、在2005年度帐中,将第一步备份的数据回写到原来的表中。注意:加班安排与加班时段之间有外键关系,要保证加班安排的主键不变。 |