新手求教,百度过了,答案都与所问不符,才来让大家看看。
 问题如下:
    两张表:第一张 EMP表,用到字段:empno、sal、deptno
           第二张 dept表,只有两个字段:deptno/deptno
   需求:查出相同部门的总工资
    想要做到的视图效果: 部门名称   总工资数
    问题所在:先做出一张虚拟表 将两张表通过deptno关联 将所有字段合成一张表 然后group by deptno
             但是错误提示;列明未明确,据说有个可以去除重复列(不是distinct)的方法,但是百度到的都不是想要答案...(水平太菜,求指教。)
--------------------------------------------------这是我本办法出来的答案,怎么改善?
    select dname,sum(sal) as b  from  (select emp.deptno,emp.sal,dept.dname from emp,dept where emp.deptno=dept.deptno ) nee  group by dname,deptno
     重复列oracleselect百度需求

解决方案 »

  1.   

    SELECT DEPT.DNAME "部门名称", SUM(EMP.SAL) "总工资数"
      FROM EMP, DEPT
     WHERE EMP.DEPTNO = DEPT.DEPTNO
     GROUP BY DEPT.DNAME
      

  2.   

    不是重复列,是未明确定义列,说白了,你group by deptno的时候,系统不知道你用emp这表的,还是用dept这个表的。指定一个就行了
      

  3.   

    谢谢解疑,可不可以帮我分析下我原来的思路哪里不对吗?
      怎么解决我那个重复列的问题? 
    主要就是分组的依据,因为你最终要的是部门名称,就没有必要依据别的字段分组了。报错的原因,4楼总结的很对谢谢回复,这个朋友的代码我试了,结果格式正确,但是分组条件为dname时,第二列工资结果是所有部门的工资总和,而不是次部门的工资和。
     四楼总结的对,解决办法为在建立虚拟表时明确select的后边的列名,不要使用* ,而是把需要的列名一一写出来就可以了。貌似没有一个直接去除重复列的方法。