2012-02-08 92 views
0

我有兩個表,我需要做一定的選擇。如何構建此SQL SELECT查詢?

第一個表是僱工有colums 名稱 * Departament_ID *和工資 第二個表是Departament有colums Departament ID和* Departament_Name *

我的SQL腳本有拿到我的姓名,最高賽樂最低工資其中Departament_ID是'30'

+3

你試過了什麼?他們是基本的查詢... – 2012-02-08 14:48:59

回答

0

這樣的事情應該可以做到這一點(注意:所有的拼寫都與你在第一篇文章中給出的完全相同)。

SELECT d.Department_Name AS name, 
      MAX(e.salary) AS max_salary, 
      MIN(e.salary) AS min_salary 
    FROM Department d 
LEFT JOIN Employe e ON d.Department_ID = e.Department_ID 
    WHERE d.Department_ID = 30 
0
SELECT d.department_name, 
     MIN(e.salary) AS 'Minimum Salary', 
     MAX(e.salary) AS 'Maximum Salary' 
FROM department d,employee e 
WHERE d.department_id=30 AND d.department_id=e.department_id 
GROUP BY d.department_name 
+2

凌亂的連接:P當你這樣做的時候顯式地加入'JOIN'更明顯,而不是隱藏在'FROM'和'WHERE' :) – Joe 2012-02-08 14:52:46

+0

當然,但是左連接是這是一個矯枉過正的問題;) – dgw 2012-02-08 14:55:51

+0

大聲笑,這取決於你想如何處理沒有僱員的部門,如果你使用明確的'JOIN',你可以通過改變'LEFT'到'INNER'來改變它,這是爲你完成的:) – Joe 2012-02-08 14:58:02

0
SELECT max(sal) as MaximumSalary 
     ,min(sal) as MinimumSalary 
     ,department.Departament_Name 
     ,employee.Name 
FROM employee 
INNER JOIN department ON 
      employee.departmentid = department.department_id 
WHERE department.department_id = 31 
GROUP BY department.department_id 

最大值和最小值功能會給你的薪水列的最大和僱員表的最小值。這將要求您使用GROUP BY,因爲他們需要計算一組數據中的最大值和最小值,在這種情況下,按部門計算最大值/最小值。我們按部門ID分組,因爲它是表格的唯一鍵。內部聯結在這裏加入你擁有的兩個表。這是一個內部聯接,因爲我們想讓部門進入查詢。

0
SELECT d.Department_Name AS name, 
     MAX(e.salary) AS max_salary, 
     MIN(e.salary) AS min_salary 
    FROM Department d 
    Inner JOIN Employee ON d.Department_ID = e.Department_ID 
    WHERE d.Department_ID = 30