同步员工职级职等(员工职级职等为空但职级职等变更记录不为空的情况)

by 刘强亚 2016.11.30 11:37

注:脚本执行有风险,对于客户正式环境请在研发指导下执行。

--更新人员档案职级职等(头行不一致)
declare @Org bigint--人事组织
declare HROrgCursor cursor
for select distinct a.id  from Base_Organization a left join Base_Organization_Trl b on a.ID=b.ID where IsHrOrg=1
open HROrgCursor
--遍历hr组织
fetch next from HROrgCursor into @Org
while(@@FETCH_STATUS=0)
begin
 DECLARE @empID bigint--员工
 DECLARE EmployeeCursor CURSOR FOR
 select Employee from CBO_EmpJobTitleLevelRecord where Employee in(
  select id from CBO_EmployeeArchive where
  (DimissionDate is null or DimissionDate>GETDATE()) and  (JobLevel is null or JobLevel<=0) and WorkingOrg=@Org
  )and (EndTime is null or EndTime >GETDATE()) and WorkOrg=@Org--根据组织取有效的职级职等变更记录中员工工作记录上不存在职级职等的员工

 OPEN EmployeeCursor
 --遍历hr组织员工
 FETCH NEXT FROM EmployeeCursor  INTO @empID
 WHILE(@@FETCH_STATUS=0) 
 BEGIN
  update archive set archive.JobLevel=titleLevel.JobTitleLevel from CBO_EmployeeArchive as archive inner join  CBO_EmpJobTitleLevelRecord as titleLevel
  on titleLevel.Employee=archive.ID and (titleLevel.EndTime is null or titleLevel.EndTime >GETDATE()) and titleLevel.WorkOrg=archive.WorkingOrg  
   where archive.ID=@empID and archive.WorkingOrg=@Org--更新员工档案上的职级职等,来源于职级职等变更记录中唯一条有效记录

  FETCH NEXT FROM EmployeeCursor  INTO @empID
 END
 CLOSE EmployeeCursor
 DEALLOCATE EmployeeCursor

fetch next from HROrgCursor into @Org--提前下一位信息
end
close HROrgCursor --关闭游标
deallocate HROrgCursor---删除游标

同步员工职级职等.sql (1.49 kb)

Tags:

添加评论



biuquote
微笑得意调皮害羞酷大笑惊讶发呆喜欢可怜尴尬闭嘴噘嘴皱眉伤心抓狂呕吐坏笑漫骂发怒
Loading


RecentComments

评论 RSS

Statistics

989 篇文章
0 个单页
653498 条评论
11 次评分
233751 次访问
访问统计开始于 2019年12月15日
平均日访问 5436 次
当前 97 人在线