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.被考评人

解决方案 »

  1.   

    我这条语句在oracle里执行后报错,
    “ from (select * from xn_pf where 表类别='自评'  ) a  left join
                                                         *
    ERROR 位于第 4 行:
    ORA-00933: SQL 命令未正确结束“请问怎么修改,在oracle不报错?
      

  2.   

    别晕,oracle里不支持left join ,right join  
    你需要类似这样的写法+取代左右关联你放到相应的位置就可以了
    select * from table1 t1,table2 t2 where t1.id(+)=t2.id
      

  3.   

    没写全
    oracle8i里不支持left join ,right join ,
    oracle9i就支持了
      

  4.   

    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.被考评人
      

  5.   

    如果左联接应该是left outer join而不是left join
      

  6.   

    Oracle里直接用逗号间隔连接表就可以了.
      

  7.   

    to worldly_wind(尘世的风) 
    left outer join 不等于 left join 吗?