返回有加入最高薪水的员工的姓名

时间:2013-09-18 05:36:10

标签: sql sql-server sql-server-2008

这是情况。我有两个表,一个是表Tbl_employ,第二个是tbl_details

Tbl_employ
----------
id  | name 
1   | Ravi
2   | ram 
3   | sham
4   | john

Tbl_details
-----------
id   | salary   | emp_id
1    | 500      | 1
2    | 200      | 2 
3    | 400      | 3
4    | 501      | 4

我想返回name of the employee中薪水最高的tbl_detail

这种情况的连接查询是什么?

请建议。提前谢谢。

2 个答案:

答案 0 :(得分:2)

也许:

SELECT TOP(1) name
FROM Tbl_employ e INNER JOIN Tbl_details d ON e.id = d.emp_id
ORDER BY d.salary DESC;

基本上,这会将关键字段(idemp_id)上的两个表连接起来,只返回一个最大TOP(1)行的结果(salary) (ORDER BY d.salary DESC)。

答案 1 :(得分:0)

我很欣赏@Max Vernon的答案。 你也可以用另一种方式来做。请试试这个

select t.name from (
select Distinct top 1 salary ,name
from Tbl_employ as E
left outer join Tbl_details as D on D.empid=E.id
order by salary desc
 ) as t  

你可以在这里查看SQL Fiddle