请用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;
------其他解决方案--------------------谢谢楼上两位。学习了