根据另一个查询结果中每一行的值运行查询

时间:2017-09-01 22:07:34

标签: sql sql-server

我有两张桌子

  • 大学(UnivId,UnivName)
  • 毕业生(EmpId,UnivId,GradYear)

我需要创建一个返回结果的查询:

UNIVNAME    NUMOFEMPLOYEES
----------- --------------
NYU                      3
UCSB                    10
UCLA                     3

对于每所大学,显示从学校毕业的员工人数。

我想我可以获得UnivName:

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

来自:

的员工人数
select sum(EmpId) from Graduate where UnivId = 'x';

我知道这是一个非常初学的问题,谢谢你的帮助!

2 个答案:

答案 0 :(得分:1)

您通过UnivId加入表格并按EmpId计算员工数量

{{1}}

答案 1 :(得分: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;