日期:2014-05-16  浏览次数:21087 次

oracle 10g sql语句 标识符无效,但是表中确实有这个标识,有图有真相
本帖最后由 Creamicend 于 2014-01-13 22:51:52 编辑
我用的是自带的表格,emp,salgrade表
emp:

说的是雇员表,里面有部门编号,雇员编号,这里用的是部门编号(deptno)
salgrade:

说的是雇员的工资分等级(grade),每个等级的最高工资(hisal)和最低工资(losal)

我自己写的和错误如下:
    希望通过下面图片中的代码可以求出每个部门的平均薪水等级。


如果不写t.deptno = emp.deptno,就不会有错,但是结果是不对的,

求大神指点 一二!!!

------解决方案--------------------

select ds.deptno, t2.grade
  from (select deptno, avg(sal) as avgsal from emp group by deptno) ds
  left join salgrade t2
    on ds.avgsal between t2.losal and t2.hisal

------解决方案--------------------
引用:
我刚刚开始学,你说的我不太懂
2楼是说 要么 你写成3楼这样的  要么写成下面这样的
select t1.deptno, t2.grade
    from (select deptno, avg(sal) as avgsal from emp group by deptno) t1,
         salgrade t2
   where t1.deptno = t2.deptno
     and t1.avgsal between t2.losal and t2.hisal