这个内部调动表设计得太差了,怎么将人员信息也装进去了?另外至少应该记录调动时间啊.(这个语句相当复杂,但并不很难,如果一个人多次调动应该怎么处理也没有说明)
(你的编号是不是按时间调动的顺序依次记录下来的啊?如果是,并且只考虑最后一次调动情况,可以这样试试)
select 职工编号,职工姓名,调动后部门 into #aaa from 表内部调动 where 职工编号 in(select 职工编号 from (select 职工编号,MAX(编号) from 表内部调动 GROUP BY 职工编号))
select 职工编号,职工姓名,调动后部门 AS 调动前部门 into #bbb from 表内部调动 where 职工编号 in(select 职工编号,MAX(编号) from 表内部调动 GROUP BY 职工编号 where 职工编号 not in (select 职工编号 from (select 职工编号,MAX(编号) from 表内部调动 GROUP BY 职工编号)))
select 职工编号,职工姓名,调动前部门,调动后部门 from #bbb b full join #aaa a on a.职工编号=b.职工编号