在两个表之间使用MAX聚合

时间:2010-09-24 19:32:10

标签: sql max match aggregate

我有两张桌子,雇主和职位:

雇主
电子身份证
易名

位置
电子身份证
薪水

我需要在两个表之间匹配我的eID,确定最高工资是多少,并且只打印eName。有关如何做到这一点的任何建议?我尝试了多种方法,但似乎没有任何效果。

我不确定在哪里放入max(薪水)功能:

select eName
from employer, position
where employer.eID = position.eID

3 个答案:

答案 0 :(得分:3)

获得薪水最高的人的姓名......

使用JOIN:

SELECT e.name
  FROM EMPLOYER e
  JOIN POSITION x ON x.eid = e.eid
  JOIN (SELECT MAX(salary) AS max_salary
          FROM POSITION) y ON y.max_salary = x.salary

使用子查询:

SELECT e.name
  FROM EMPLOYER e
  JOIN POSITION p ON p.eid = e.eid
 WHERE p.salary = (SELECT MAX(salary)
                     FROM POSITION)

答案 1 :(得分:0)

加入表格,排序并获得第一个:

select top 1 e.eName, p.salary
from Employer e
inner join Position p on p.eID = e.eID
order by p.salary desc

(这也会返回工资,但如果你真的不想要它,你当然可以删除它。)

答案 2 :(得分:0)

select e.ename,p.salary
from employer e ,position p
where p.salary=(select max(salary) from position)
and e.eid=p.eid