如何使用查询在microsoft访问中查找max参数

时间:2018-06-02 11:00:30

标签: sql ms-access

我有两列的表 - "员工" ,"薪水"。 我正在努力让薪水最高的员工。 我在设计视图上尝试了很多东西,但它没有用。

2 个答案:

答案 0 :(得分:4)

如果您希望所有员工的薪水最高,那么您可以这样做:

select top 1 t.*
from t
order by salary desc;

MS Access包括与top 1的联系。

如果您只想要一名员工,则可以包含另一个排序键:

select top 1 t.*
from t
order by salary, employee desc;

documentation

中解释了此行为
  

TOP谓词不会在相等的值之间进行选择。在里面   前面的例子,如果是第二十五和第二十六最高等级   点数平均值相同,查询将返回26条记录。

答案 1 :(得分:1)

另一种方法是使用子查询。假设您的表名为tblSalTest:

qrySalMax将获得所有工资的最大值(仅返回薪资字段):

SELECT Max(tblSalTest.Salary) AS MaxOfSalary
FROM tblSalTest;

qryFinal使用qrySalMax从tblSaltest中选择正确的记录。

SELECT tblSalTest.Employee, tblSalTest.Salary
FROM tblSalTest, qryMaxSal
WHERE (((tblSalTest.Salary) In (select MaxOfSalary from qryMaxSal)));

或者我想

SELECT tblSalTest.*
FROM tblSalTest INNER JOIN qryMaxSal ON tblSalTest.Salary = qryMaxSal.MaxOfSalary;

@ Gordon的回答在我看来更好。