0

所以我正在尝试对 3 个不同的表进行查询。一个是department桌子,一个是branch桌子,另一个是employee桌子。我有 4 个不同的分支机构,3 个不同的部门和员工可以在任何分支机构的任何部门工作。我的查询是查找拥有超过 1 个部门且员工在其工作的分支机构。

我做了以下查询:

select b.name, d.dept_id, count(*)
from department d join employee e
on d.dept_id = e.dept_id
join branch b
on b.branch_id = e.assigned_branch_id
group by b.name, d.dept_id;

这给了我分支名称,然后是部门和在该分支部门工作的员工人数。所以我得到重复的分支名称,这些分支名称有多个部门,员工在该部门工作。

我的问题是如何只返回具有多个部门且员工在其中工作的分支机构的名称?

现在该查询返回以下内容:

Headquarters    1   5
Headquarters    2   1
So. NH Branch   1   3
Headquarters    3   3
Woburn Branch   1   3
Quincy Branch   1   3

任何帮助将不胜感激

4

1 回答 1

0

那这个呢?

select b.name 
from department d 
    join employee e on d.dept_id = e.dept_id 
    join branch b on b.branch_id = e.assigned_branch_id 
group by b.name
having count(distinct d.dept_id) > 1
于 2013-06-13T04:03:03.080 回答