在Oracle上运行代码时遇到缺少关键字错误

时间:2019-06-10 01:42:51

标签: sql oracle

我有2个表,一个表存储人员的详细信息(列为staff_id,staff_name,department_id),另一个表存储部门的详细信息(列为department_id,department_name,department_block_num)。

我需要编写一个查询来显示部门名称和每个部门的人员计数,如果不存在人员显示计数为0。

这是代码

Select department_name, 
        case department.department_id 
             when department.department_id=staff.department_id then count(staff_name)  
        else 0 end staff_count 
From department, staff 
Group by department_name 
order by department_name;

1 个答案:

答案 0 :(得分:0)

您正在寻找LEFT JOIN和汇总查询:

select d.department_id, d.department_name, 
       count(s.department_id) as staff_count 
from department d left join
     staff s
     on d.department_id = s.department_id
group by d.department_id, d.department_name