日期:2014-05-17  浏览次数:20815 次

我这条语句在Oracle8i中执行后报错,请问怎样修改?
select   a.被考评人,a.考评年份,a.考评季度,a.被评部门,a.总分   as   自评得分,a.德   as   自评德,a.能   as   自评能,a.勤廉   as   自评勤廉,a.绩   as   自评绩,
b.总分   as   下评得分,b.德   as   下评德,b.能   as   下评能,b.勤廉   as   下评勤廉,b.绩   as   下评绩,
c.总分   as   上评得分,c.德   as   上评德,c.能   as   上评能,c.勤廉   as   上评勤廉,c.绩   as   上评绩
  from   (select   *   from   xn_pf   where   表类别= '自评 '     )   a   left   join  
(select   *   from   xn_pf   where   表类别= '下评 ')     b   on   b.被考评人=a.被考评人     left   join
(select   *   from   xn_pf   where   表类别= '上评 '     )     c     on   c.被考评人=a.被考评人

------解决方案--------------------
select a.被考评人,a.考评年份,a.考评季度,a.被评部门,a.总分 as 自评得分,a.德 as 自评德,a.能 as 自评能,a.勤廉 as 自评勤廉,a.绩 as 自评绩,
b.总分 as 下评得分,b.德 as 下评德,b.能 as 下评能,b.勤廉 as 下评勤廉,b.绩 as 下评绩,
c.总分 as 上评得分,c.德 as 上评德,c.能 as 上评能,c.勤廉 as 上评勤廉,c.绩 as 上评绩
from (select * from xn_pf where 表类别= '自评 ' ) a ,
(select * from xn_pf where 表类别= '下评 ') b ,
(select * from xn_pf where 表类别= '上评 ' ) c
where b.被考评人(+)=a.被考评人
and c.被考评人(+)=a.被考评人