2016-04-29 86 views
0

我在一個SQL查詢工作做到以下幾點:SQL多內部聯接

對於每一個項目,獲取項目編號,項目名稱,以及誰在工作從部門的5名員工的數量項目。

到目前爲止,我的查詢看起來像這樣:

SELECT p.PNO 
    , p.PNAME 
    , COUNT(DISTINCT w.ESSN) '# employees from Dept. 5' 
    FROM project p 
    JOIN department d 
    ON d.DNO = p.DNO 
    JOIN employee e 
    ON e.DNO = d.DNO 
    JOIN works_on w 
    ON w.ESSN = e.SSN 
WHERE e.DNO LIKE '5' 
    AND p.PNO LIKE 10 

當我正在測試它的項目數10應從部5爲1返回的員工數量,但它返回NULL。我想,我需要以某種方式參與該項目和員工表,但我不確定

附件是我的模式

ER Diagram

+0

請附上樣本數據和預期輸出 –

回答

0

你的加入是錯誤的。

您應該只加入項目,work_on和員工表。

SELECT p.PNO, p.PNAME, COUNT(DISTINCT w.ESSN) '# employees from Dept. 5' 
FROM project p 
INNER JOIN works_on w 
ON p.pno = w.pno 
INNER JOIN employee e 
ON w.essn = e.essn 
WHERE e.DNO LIKE '5' AND p.PNO LIKE 10 

而你是通過在年底缺少組:

GROUP BY p.PNO, p.PNAME 
+0

@ Walter_Ritzel更有道理,非常感謝! – jaxicab