多表问题
有空的人帮我看看吧,自己写了个语句,做了好多子查询感觉太不优化了。
有数据表 SYS_USER(员工表): 字段 USERID(主键),USERNAME(姓名),CERTIFICATE_NO(身份证),DEPT(部门),JOB(岗位),JOIN_DATE(入职日期),CONTRACT_END_DATE(合同终止日期),LEAVE_DATE(离职日期),STATUS(状态);
STAFF_CONTRACT(续约表): USERID,CONTRACT_BEGIN_DATE(合同开始日期),CONTRACT_END_DATE(合同终止日期);
EMPLOYEE_FORMAL(转正表):USERID,FORMAL_DATE(生效日期);
USER_CHG_HIS(调配表):USERID,ORG_DEPT(原部门),ORG_JOB(原职位),NEW_DEPT(新职位),NEW_JOB(新部门),FORMAL_DATE(生效日期);
同一个人可以多次入职,但再次入职会在人员表中新生成记录;
需要得到是数据是人员轨迹表 每个人的信息都显示成
如下:USERID USERNAME 身份证 部门 职位 生效日期 合同终止日期 状态
001 张三 xxxxx1 财务 助理 02-08-01 05-08-01 入职
001 张三 xxxxx1 财务 出纳 02-09-01 05-08-01 调配
001 张三 xxxxx1 财务 会计 03-08-01 05-08-01 调配
001 张三 xxxxx1 财务 会计 05-08-01 08-08-01 续约
001 张三 xxxxx1 财务 经理 06-08-01 05-08-01 调配
001 张三 xxxxx1 财务 经理 07-07-21 05-08-01 离职
104 张三 xxxxx1 财务 主管 08-03-11 11-03-11 二次入职
104 张三 xxxxx1 财务 主管 08-06-21 11-03-11 转正
人员信息可以根据身份证关联,比较麻烦的是我们每次调配后都会直接把人员表里面的部门,职位直接更新成当前的职位部门
这样在轨迹里面取人员的某个时间的职位就比较麻烦,人员可以多次调配。