谁帮忙写个SQL语句
凌建锐 26分钟前 
两张表关联 部门 员工 
要求查出员工人数小于三的 所有部门的编号和名称
select count(empno),d.dname from emp e,dept d where e.deptno=d.deptno group by d.dname
这是查出每个部门的人数,然后就不会写呢。哪位朋友帮一下忙!谢谢了 ! 

解决方案 »

  1.   

    SELECT d.deptno, d.dname
      FROM dept d,
           (SELECT d.deptno
              FROM emp e, dept d
             WHERE d.deptno = e.deptno(+)
             GROUP BY d.deptno
            HAVING COUNT(1) < 3) a
     WHERE d.deptno = a.deptno
      

  2.   

    select d.deptno,d.dname
    from dept d,(
    select deptno,count(*) count_emp
    from emp
    group by deptno
    )a 
    where count_emp<3 and 
    d.deptno=a.deptno;
      

  3.   


    select deptno, dname
      from dept
     where deptno in
           (select deptno from emp group by deptno having count(deptno) <3)
    --不包括没有员工的部门
      

  4.   

    4楼 我想问一下 count_emp<3 这个是什么意思? 可以告诉我吗?