读书人

请用2种不同的sql写法统计出所有部门

发布时间: 2012-12-18 12:43:41 作者: rapoo

请用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;

[其他解释]
谢谢楼上两位。学习了

读书人网 >oracle

热点推荐