select * from
FROM
A,
B
LEFT OUTER JOIN
C
ON(C.c1 <= DECODE(....) and
   C.c2 > DECODE(....)
)
LEFT OUTER JOIN
D
on(........);运行的时候提示:a column may not be outer-joined to a subquery? 请问如何解决?

解决方案 »

  1.   

    on条件中不能使用子查询,可以将子查询条件放到where子句
      

  2.   

    红色部分,是inner join 的话,请写上select * from
    FROM
    A,
    B
       -- from a inner join b on a.xx = b.xx 
    LEFT OUTER JOIN
    C
    ON(C.c1 <= DECODE(....) and
      C.c2 > DECODE(....)
    )
    LEFT OUTER JOIN
    D
    on(........);
      

  3.   

    先谢谢两位的回复。
    我的decode里面确实有子查询:
    DECODE(a.type, 1, select from_date from E
    where E.E1 = a.a1),但是这个逻辑关系基本上又无法变动,能给个改动的例子么?