select d1.desc C, d2.desc Loc, d3.desc Item, c.sal
from c,
     (select unit, desc from d where type = 'C') d1,
     (select unit, desc from d where type = 'L') d2,
     (select unit, desc from d where type = 'I') d3
where c.unit = d1.unit (+)
  and c.unit = d2.unit (+)
  and c.unit = d3.unit (+);问题不难,但是表结构很怪

解决方案 »

  1.   

    非常感謝你KingSunSha(弱水三千)
      

  2.   

    三千兄为什么不当Oracle板的板主呢?
      

  3.   

    select (select max(a.desc) from c a where c.unit = a.unit and a.tpye = 'C'),
           (select max(a.desc) from c b where c.unit = b.unit and b.tpye = 'L'),
           (select max(a.desc) from c d where c.unit = d.unit and d.tpye = 'I'),c.sal
    from c
      

  4.   

    更正笔误select (select max(a.desc) from c a where c.unit = a.unit and a.tpye = 'C') as C,
           (select max(b.desc) from c b where c.unit = b.unit and b.tpye = 'L') as Loc,
           (select max(d.desc) from c d where c.unit = d.unit and d.tpye = 'I') as Item 
           ,c.sal
    from c
      

  5.   

    where c.unit = d1.unit (+)
      and c.unit = d2.unit (+)
      and c.unit = d3.unit (+);
    请问:这里的加号作什么用?