update TMP_ZHGL_CXTJXBJGFJ  set wh6=(select count(*) from DA_JT_JBXX  a ,
(select sqbm from wph_dzxx where  exists (select 1 from TMP_ZHGL_CXTJXBJGFJ where jgbm=wph_dzxx.jgbm)) b 
 where a.jlzt = '0' and (select  jtlx from DA_JT_JTLX where jtbjh =a.jtbjh and jlzt='0' and rownum <=1)='6' 
and a.grbjh in (select grbjh from da_gr_hxda) and  a.jtsqbm like b.sqbm || '%' and jgbm like b.sqbm || '%');

解决方案 »

  1.   

    把那个jtlx='6'的条件单独提出来作为一个表试试。
    select  jtlx from DA_JT_JTLX d,DA_JT_JBXX e  where d.jtbjh =e.jtbjh and d.jlzt='0' and d.jtlx='6' and rownum <=1) 
      

  2.   

    update TMP_ZHGL_CXTJXBJGFJ
       set wh6 = (select count(*)
                    from DA_JT_JBXX a,
                         (select sqbm
                            from wph_dzxx
                           where exists (select 1
                                    from TMP_ZHGL_CXTJXBJGFJ
                                   where jgbm = wph_dzxx.jgbm)) b
                   where a.jlzt = '0'
                     and exists (select 1
                            from DA_JT_JTLX
                           where jtbjh = a.jtbjh
                             and jlzt = '0'
                             and rownum <= 1
                             and jtlx='6')
                     and a.grbjh in (select grbjh from da_gr_hxda)
                     and a.jtsqbm like b.sqbm || '%'
                     and jgbm like b.sqbm || '%');
      

  3.   

    update TMP_ZHGL_CXTJXBJGFJ  
    set wh6=(select count(*) from DA_JT_JBXX  a , 
    (select sqbm from wph_dzxx where  exists (select 1 from TMP_ZHGL_CXTJXBJGFJ where jgbm=wph_dzxx.jgbm)) b 
    where a.jlzt = '0' and (select  jtlx from DA_JT_JTLX where jtbjh =a.jtbjh and jlzt='0' and rownum <=1)='6' 
    and exists (select grbjh from da_gr_hxda where a.grbjh=da_gr_hxda.grbjh)
    and  a.jtsqbm like b.sqbm || '%' and jgbm like b.sqbm || '%');这样试试
      

  4.   

    试试这个
    UPDATE TMP_ZHGL_CXTJXBJGFJ
       SET WH6 = (SELECT COUNT(*)
                    FROM DA_JT_JBXX A,
                         (SELECT SQBM
                            FROM WPH_DZXX
                           WHERE EXISTS (SELECT 1
                                    FROM TMP_ZHGL_CXTJXBJGFJ
                                   WHERE JGBM = WPH_DZXX.JGBM)) B
                   WHERE A.JTSQBM LIKE B.SQBM || '%'
                     AND JGBM LIKE B.SQBM || '%'
                     AND A.GRBJH IN (SELECT GRBJH
                                       FROM DA_GR_HXDA)
                     AND (SELECT JTLX
                            FROM DA_JT_JTLX
                           WHERE JTBJH = A.JTBJH
                             AND JLZT = '0'
                             AND ROWNUM <= 1) = '6'
                     AND A.JLZT = '0'  
                  );
      

  5.   

    试试这个,不过你检查一下看写没写对。UPDATE TMP_ZHGL_CXTJXBJGFJ
       SET WH6 = (WITH TEMPB AS (SELECT SQBM
                                   FROM WPH_DZXX
                                  WHERE EXISTS (SELECT 1
                                           FROM TMP_ZHGL_CXTJXBJGFJ
                                          WHERE JGBM = WPH_DZXX.JGBM)), 
    TEMPC AS (SELECT JTLX,
     JTBJH
    FROM DA_JT_JTLX AND
     JLZT = '0' AND
     JTLX = '6' AND
     ROWNUM <= 1), 
     TEMPD AS (SELECT GRBJH FROM DA_GR_HXDA)
                 
                   SELECT COUNT(1)
                     FROM DA_JT_JBXX A, TEMPB B, TEMPC C
                    WHERE A.JTBJH = C.JTBJH
                      AND A.GRBJH IN TEMPD.GRBJH
                      AND A.JTSQBM LIKE B.SQBM || '%'
                      AND JGBM LIKE B.SQBM || '%'
                      AND A.JLZT = '0');