Access 多条记录顺序更新问题
有两张表,一张表叫wage,用来记录所有员工的所有历史工资和最新工资记录(包括先前所有旧的和现在新的),子窗体内以ID降序排序;另一张表叫new_wage,只用来记录当前最新的工资记录。
现在,需要以工号为依据,对new_wage表的记录进行更新。也就是说,要将wage表内的多条记录更新到new_wage表内的单条记录上。语句如下:
DoCmd.RunSQL ( "UPDATE wage INNER JOIN new_wage ON wage.工号 = new_wage.工号 SET new_wage.职称类别 = [wage].[职称类别], new_wage.任职年限 = [wage].[任职年限], new_wage.套改年限 = [wage].[套改年限], new_wage.薪级 = [wage].[薪级], new_wage.岗位工资 = [wage].[岗位工资], new_wage.薪级工资 = [wage].[薪级工资], new_wage.工资 = [wage].[工资], new_wage.年度 = [wage].[年度] WHERE [new_wage].[工号]= ' " & 工号 & " '; ")
问题是,测试了前7条记录,前3条记录能顺利更新,并将wage表中最后一条记录(也就是最新工资)更新到new_wage表中[子窗体内,将wage表记录按照ID降序排列]。但是,后四条记录更新后,却将第一条记录(最早的工资记录)更新到new_wage表中。
请问为什么?如何解决?谢谢!
[解决办法]
1
select * from tt a where id=(select top 1 id from tt
where a.工号=工号 order by id desc)
2
select a.* from tt a inner join
(select 工号,max(id) as ma from tt group by 工号) b
on a.id=id
我的异常网推荐解决方案:软件开发者薪资,http://www.myexception.cn/other/1391128.html