Office中国论坛/Access中国论坛

标题: 如何找出最新的工资变动 [打印本页]

作者: tszysun    时间: 2010-4-8 17:15
标题: 如何找出最新的工资变动
我做了一个工资程序,每个人的工资变动记录下来,想用查询找出员工的最新工资金额,按员工id分组,使用了查询找出最大日期,可后面的部门、岗位、工资不能用分组了怎么办?请帮助看一下,谢谢
作者: zzyzzg    时间: 2010-4-8 18:39
看一下,
作者: zzyzzg    时间: 2010-4-8 18:57
看一下
作者: andymark    时间: 2010-4-8 20:10
你不是分组了吗


贴出你想要的结果
作者: tszysun    时间: 2010-4-9 08:07
你不是分组了吗


贴出你想要的结果
andymark 发表于 2010-4-8 20:10

我想要每个人最后的工资变动,可分组不行,请问是怎么回事?按员工ID分组后找出日期最大值,可后面的部门、岗位什么的不能分组,怎么做,我是菜鸟,谢谢
作者: 123shusheng    时间: 2010-4-9 20:55
这是我写的,方法有点笨(我也是菜鸟),但可以解决你的问题,参考一下.
http://www.office-cn.net/forum.php?mod=viewthread&tid=78613&highlight=%2B123shusheng
作者: tszysun    时间: 2010-4-10 14:10
这是我写的,方法有点笨(我也是菜鸟),但可以解决你的问题,参考一下.
http://www.office-cn.net/forum.php?mod=viewthread&tid=78613&highlight=%2B123shusheng
123shusheng 发表于 2010-4-9 20:55

不行,没有达到我要的效果,谁能帮助我一下呀
作者: styhs    时间: 2010-4-10 17:21
难以理解需求,看是否符合。

Code
SELECT A.日期, A.部门ID, A.岗位ID, A.员工ID, A.薪资金额 AS 最后薪资, B.薪资金额  AS 之前薪资, Nz(A.薪资金额) - Nz(B.薪资金额) AS 变动
FROM 工资变动 AS A INNER JOIN 工资变动 AS B ON (A.岗位ID = B.岗位ID) AND (A.部门ID = B.部门ID) AND (A.员工ID = B.员工ID) AND (A.日期 > B.日期)
WHERE A.日期 IN (SELECT Max(日期) FROM 工资变动 WHERE 员工ID = A.员工ID)
ORDER BY A.日期, A.部门ID, A.岗位ID, A.员工ID




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3