写一个查询来查找生活在SQL Server中“Nagpur”的表中最高薪水的员工?

时间:2017-05-12 05:24:30

标签: sql-server

我在下面有数据表:

select * from Emp

EmpId   DeptId  Salary
101     1       3000
102     2       4000
103     3       3000
104     1       5000
105     2       7000
106     3       10000
107     3       20000
108     2       10000
109     1       10000

Select * from EmpDetail
EmpId   Name    Role    City
101     Rick    QA      Nagpur
102     John    Dev     Pune
103     Jane    Dev     Mumbai
104     Rock    QA      Pune
105     Shane   Manager Mumbai
106     Peter   Dev     Nagpur
107     Jackob  Manager Nagpur
108     Jeff    QA      Pune
109     Bob     Dev     Nagpur

所以问题是如何在sql server中找到生活在“Nagpur”的表中最高薪水的员工?

2 个答案:

答案 0 :(得分:0)

这应该可以胜任

<div id="map"></div>
<div id="right-panel">
<div>
<b>Start:</b>
<select id="start">
  <option value="26.158700, 91.686940">Start</option>
</select>
<br>
<b>Waypoints:</b> <br>
<i>(Ctrl+Click or Cmd+Click for multiple selection)</i> <br>
<select multiple id="waypoints">
  <option value="26.158833, 91.688532">B</option>
  <option value="26.159024, 91.690774">C</option>
  <option value="26.159186, 91.693296">D</option>
  <option value="26.159105, 91.696115">E</option>
  <option value="26.159748, 91.695542">F</option>

</select>
<br>
<b>End:</b>
<select id="end">
  <option value="26.160506, 91.695095">Destination</option>
</select>

让我知道这是否有效

答案 1 :(得分:0)

;With Emp(EmpId,DeptId,Salary)
AS
(
SELECT 101,1,3000  Union all
SELECT 102,2,4000  Union all
SELECT 103,3,3000  Union all
SELECT 104,1,5000  Union all
SELECT 105,2,7000  Union all
SELECT 106,3,10000 Union all
SELECT 107,3,20000 Union all
SELECT 108,2,10000 Union all
SELECT 109     ,1       ,10000
)
,EmpDetail(EmpId,Name,Role,City)
AS
(
SELECT 101,'Rick'  ,'QA'      ,'Nagpur'  Union all
SELECT 102,'John'  ,'Dev'     ,'Pune'    Union all
SELECT 103,'Jane'  ,'Dev'     ,'Mumbai'  Union all
SELECT 104,'Rock'  ,'QA'      ,'Pune'    Union all
SELECT 105,'Shane' ,'Manager' ,'Mumbai'  Union all
SELECT 106,'Peter' ,'Dev'     ,'Nagpur'  Union all
SELECT 107,'Jackob','Manager' ,'Nagpur'  Union all
SELECT 108,'Jeff'  ,'QA'      ,'Pune'    Union all
SELECT 109,'Bob'   ,'Dev'     ,'Nagpur'  
)
SELECT TOP 1 E.EmpId
    ,D.NAME
    ,D.ROLE
    ,E.DeptId
    ,MAx(E.Salary) Salary
    ,D.City
FROM EmpDetail D
INNER JOIN Emp E ON E.EmpId = D.EmpId
WHERE D.City = 'Nagpur'
GROUP BY E.EmpId
    ,D.NAME
    ,D.ROLE
    ,E.DeptId
    ,D.City
ORDER BY Salary DESC

输出

EmpId   NAME    ROLE    DeptId  Salary  City
---------------------------------------------
107    Jackob   Manager 3       20000   Nagpur