自我加入使用Group By子句获取“无效标识符”错误

时间:2012-12-14 17:09:57

标签: sql group-by self-join

我正在尝试使用Self Join子句组合Group By以查看哪个人在各自的工作中获得的报酬最高,但我一直收到此错误 00904. 00000 - "%s: invalid identifier"

以下是我目前正在尝试修复的代码:

Select a.*,b.sal
From EMP a,(Select job,MAX(sal)
            From EMP
            Group By job) b
Where a.empno = b.empno

我做了一些研究而且找不到任何与我正在做的事情有关的事情(也许因为我正在做的事情太简单了?)但是我仍在寻找任何可以指向正确方向的东西。提前谢谢。

2 个答案:

答案 0 :(得分:0)

您没有在子查询中返回的名为empno的列。我想你想要这样的东西,它会根据工作为每个员工返回max(sal)

Select a.*, b.sal
From EMP a
inner join
(
  Select job, MAX(sal) sal
  From emp
  Group By job
) c
   on a.job = b.job

答案 1 :(得分:0)

请改为尝试:

Select a.*
From EMP a
INNER JOIN
( 
   Select job, MAX(sal) MaxSal
   From EMP
   Group By job
) b ON a.job = b.job AND a.sal = b.MaxSal