2017-09-01 119 views
1

我有兩個表運行查詢

  • 大學(UnivId,UnivName)
  • 研究生(EMPID,UnivId,GradYear)

我需要創建一個返回如下結果的查詢:

其中每個大學顯示僱員人數gra來自學校的鐘聲。

我想我可以得到UnivName:

select DISTINCT University.UnivName 
from University, Graduate 
where University.UnivId = Graduate.UnivId; 

和員工從數量:

select sum(EmpId) from Graduate where UnivId = 'x'; 

我知道這是很初級的問題,感謝您的幫助!

+0

您學到INNER JOIN了嗎? –

+0

顯然,您正在使用80年代的書籍或教程。讓自己更新一些,忘掉舊的連接sysntax('from University,Graduate'),並使用適當的ANSI連接('from University University inner join Graduate on University.UnivId = Graduate.UnivId')。在使用多個表格時使用別名也是一個好主意:(來自大學,內部聯合畢業生在u.UnivId = g.UnivId上)。 –

+0

您希望每個組(每個大學)的總數(計數)。你有學過'GROUP BY'嗎? –

回答

1

您參加由UnivId表和EMPID

SELECT u.UnivName, 
     COUNT(g.EmpId) NumOfEmployees 
    FROM Univeristy u 
    JOIN Graduate g 
    ON u.UnivId = g.UnivId 
GROUP BY u.UnivName 
0

你應該嘗試LEFT算員工人數JOIN像下面

SELECT 
U.UnivName, 
ISNULL(Count(1),0) NUMOFEMPLOYEES 
FROM University U LEFT JOIN Graduate G 
ON U.UnivId = G.UnivId 
GROUP BY U.UnivName;