RT

解决方案 »

  1.   

    正常啊
    select * from ta a left join (select * from ta) b
    on a.id=b.id不明白你的意思,可否贴出sql语句,再帮你分析下
      

  2.   

    select 
    a.well_common_name,
    to_char(b.prod_date,'yyyy-mm-dd') prod_date,
    b.prod_time,
    c.PUMP_DEPTH,
    e.STROKE_LENGTH,
    f.STROKE_FREQUENCY,
    g.PUMP_DIAMETER,
    b.LIQ_PROD_DAILY,
    b.OIL_PROD_DAILY,
    b.WATER_CUT,
    b.SALT_CUT,
    c.STATIC_PRESSURE,
    b.WATER_PROD_DAILY,
    b.GAS_PROD_DAILY,
    b.GAS_OIL_RATIO,
    d.OIL_PROD_METHOD
    from PC_PRO_WELL_VOL_DAILY b,PC_PRO_WELL_STATUS_DAILY d,CD_WELL_SOURCE a
    left join TEMP_WELL_MECH_ALL c on c.well_id=a.well_id and c.test_date=(select max(test_date) from TEMP_WELL_MECH_ALL ff where ff.well_id=a.well_id and ff.test_date<=TO_DATE('2009-11-12', 'YYYY-MM-DD') and ff.pump_depth is not null )left join TEMP_WELL_MECH_ALL e on e.well_id=a.well_id and  e.test_date=(select max(test_date) from TEMP_WELL_MECH_ALL ff where ff.well_id=a.well_id and ff.test_date<=TO_DATE('2009-11-12', 'YYYY-MM-DD') and ff.stroke_length is not null)left join TEMP_WELL_MECH_ALL f on f.well_id=a.well_id and h.STROKE_FREQUENCY is not null and  f.test_date=(select max(test_date) from TEMP_WELL_MECH_ALL ff where ff.well_id=a.well_id and ff.test_date<=TO_DATE('2009-11-12', 'YYYY-MM-DD') and ff.STROKE_FREQUENCY is not null)left join TEMP_WELL_MECH_ALL g on g.well_id=a.well_id and  g.test_date=(select max(test_date) from TEMP_WELL_MECH_ALL ff where ff.well_id=a.well_id and ff.test_date<=TO_DATE('2009-11-12', 'YYYY-MM-DD') and (ff.pump_diameter is not null or ff.pump_diameter is null))   
    where a.well_id=b.well_id  and a.well_id=d.well_id 
    and b.prod_date=d.prod_date and c.well_id=e.well_id and h.well_id=g.well_id and e.well_id=h.well_id  
    and b.prod_date= TO_DATE('2009-11-12', 'YYYY-MM-DD')
    and a.org_id IN (SELECT ORG_ID
                          FROM PC_ORGANIZATION_T
                         START WITH ORG_ID = 'O0HI4Ip6R6'
                        CONNECT BY PRIOR ORG_ID = PARENT_ID) order by well_common_name
      

  3.   

    ORA-01799: a column may not be outer-joined to a subquery 
    Cause: <expression>(+) <relop> (<subquery>) is not allowed.
     
    Action: Either remove the (+) or make a view out of the subquery. In V6 and before, the (+) was just ignored in this case.
     
      

  4.   

    看半天就看出这个条件没用:
    ff.pump_diameter is not null or ff.pump_diameter is null
    永远都是真,哈哈。
      

  5.   

    join 中都不允许使用子查询,请将on条件中加的select语句的条件,转化到整个sql的where条件中去写就可以了。