当前位置: 代码迷 >> Oracle管理 >> 请用2种不同的sql写法,统计出所有部门上的员工人数,若某部门上不存在员工,则统计显示为0.显示结果为: 部门编号、员工人数
  详细解决方案

请用2种不同的sql写法,统计出所有部门上的员工人数,若某部门上不存在员工,则统计显示为0.显示结果为: 部门编号、员工人数

热度:50   发布时间:2016-04-24 04:54:44.0
请用2种不同的sql写法,统计出所有部门下的员工人数,若某部门下不存在员工,则统计显示为0.显示结果为: 部门编号、员工人数
请用2种不同的sql写法,统计出所有部门下的员工人数,若某部门下不存在员工,则统计显示为0.显示结果为: 部门编号、员工人数

select b.deptno,count(a.empno) from dept_4908 b,emp4908 a where b.deptno=a.deptno(+) group by b.deptno;

.我写了一种,还有一种怎么写???求高手解答,谢谢
------最佳解决方案--------------------
select a.deptno,
       nvl((select count(1)
              from emp4908
             where deptno=a.deptno),0) emp_num
  from dept_4908 a;
------其他解决方案--------------------

--第一种
select b.deptno, nvl(c.cn, 0)
  from dept_4908 b,
       (select a.deptno, count(a.empno) cn from emp4908 a group by a.deptno) c
 where b.deptno = c.deptno(+);
 
 --第二种
 select b.deptno,
        (select count(a.empno) from emp_4908 a where a.deptno = b.deptno)
   from dept_4908;

------其他解决方案--------------------
谢谢楼上两位。学习了
  相关解决方案