表一: 名为:emp表二: 名为:dept
要求写一个sql语句:
   显示各个部门的名称、办事地点,以及每个部门的人数、平均工资。我用内连接+分组+子查询 做了好久没做出来,经常说不是group by 表达式。  求大家帮帮忙!

解决方案 »

  1.   


    select d.部门名称,d.办事地点,sum(e.员工编号),avg(e.薪水)
    from emp e,dept d
    where e.部门编号=d.部门编号
    group by d.部门名称,d.办事地点;
      

  2.   

    select dept.deptno,
           dept.dname,
           nvl(count(empno),0),
           nvl(avg(sal),0)
    from emp,dept
    where emp.deptno=dept.deptno
      

  3.   


    --应该改为左连接更好
    select dept.deptno,
           dept.dname,
           nvl(count(empno),0),
           nvl(avg(sal),0)
    from emp,dept
    where emp.deptno(+)=dept.deptno
      

  4.   


    select dept.deptno,
           dept.dname,
           nvl(count(empno),0),
           nvl(avg(sal),0)
    from emp,dept
    where emp.deptno(+)=dept.deptno
    group by dept.deptno,dept.dname