2011-08-25 23 views
1

我怎樣才能得到主管部門的id,使員工獲得最大的工資:SQL查詢:我怎樣才能部門的「身份證」,使員工獲得最大的工資是多少?

Employee表:EMPLID, FirstName, LastName, Salary, DeptId
部門表:部門ID, City

RUS(派生「ID 「細分,使員工接受最高工資。)

+2

該類型的查詢你只有當你在學校是寫或者當你在BI和不滿意你的薪水。 ;-) – GolezTrol

+1

你想有每emploeyee工資的平均最大的部門? – Lamak

+0

@DavyJonesUA - 毫米,筆者認爲,這正是我問 – Lamak

回答

0

ŧ Ø獲得一個單一部門的ID,其中單筆最高工資支付:

SELECT TOP 1 DeptID 
FROM dbo.Empl 
ORDER BY Salary DESC 

或者,您在找什麼東西?

0
SELECT DepartmentId 
FROM Employee 
WHERE Salary = (SELECT MAX(Salary) FROM Employee) 
+1

如果您發佈的代碼,XML或數據樣本,** **請在高亮文本編輯器的線路,然後點擊編輯器工具欄上的「代碼示例」按鈕('{}')來很好的格式和語法高亮顯示! –

+0

加:在OP希望**部門ID ** - ** **不僱員ID .... –

+0

抱歉。 – sianabanana

1
SELECT TOP 1 B.* 
FROM (SELECT DeptId, AVG(Salary) AvgSalary 
     FROM Empl 
     GROUP BY DeptId) A 
INNER JOIN Dept B 
ON A.DeptId = B.Id 
ORDER BY AvgSalary DESC 
+0

是。謝謝! – DavyJonesUA

2

編輯:更改爲SUM(Salary)AVG(Salary)基於有關問題的評論。

SELECT TOP 1 DeptId 
    FROM Employees 
    GROUP BY DeptId 
    ORDER BY AVG(Salary) DESC 
0

我會假設你的意思是一個部門的最高平均工資,而不是所有部門的單一最高的薪水。

但是似乎所有你需要做的就是通過部門ID和中提琴使用下面的SQL函數 MAX功能 AVG功能

組。

思想我上面的意見一致,我會假設你正在研究;-)

+0

喬的解決方案可能是最好的一個在這裏,愛他命令他們以及:-P – Contristo

0
select id 
    from dept 
where id = (select deptid 
       from (select max(avg_salary), deptid 
         from (select deptid, avg(salary) as avg_salary 
            from empl 
           group by deptid) 
         group by deptid) 
        ) 

:-)這樣