SELECT SUM(KCRKD2_SSSL) FROM HMHTGY,KCRKD2,BFGBD,BFGBGL 
WHERE BFGBD_LSBH = KCRKD2_GBDLS AND HMHTGY_LSBH = BFGBGL_LYLS AND BFGBGL_LSBH=BFGBD_LSBH 
WHERE F_HTBH IN (SELECT HMHTGY_HTBH FROM HMHTGY,KCRKD2,BFGBD,BFGBGL 
WHERE BFGBD_LSBH = KCRKD2_GBDLS AND HMHTGY_LSBH = BFGBGL_LYLS AND BFGBGL_LSBH = BFGBD_LSBH)
这句在SQLSERVER上可以执行 在ORACLE中老提示“命令未正确结束”显示“WHERE F_HTBH IN (SELECT HMHTGY_HTBH FROM HMHTGY,KCRKD2,BFGBD,BFGBGL ”的WHERE下有个小红波浪线------------------------------------------------------------------------------------------------------
另:大家新年快乐~~~

解决方案 »

  1.   

    写错了 是这句
    UPDATE T_CGHTGZCX125 SET F_RKDDHSL = (SELECT SUM(KCRKD2_SSSL) FROM HMHTGY,KCRKD2,BFGBD,BFGBGL WHERE BFGBD_LSBH = KCRKD2_GBDLS AND HMHTGY_LSBH = BFGBGL_LYLS AND BFGBGL_LSBH=BFGBD_LSBH) WHERE F_HTBH IN (SELECT HMHTGY_HTBH FROM HMHTGY,KCRKD2,BFGBD,BFGBGL WHERE BFGBD_LSBH = KCRKD2_GBDLS AND HMHTGY_LSBH = BFGBGL_LYLS AND BFGBGL_LSBH = BFGBD_LSBH)
      

  2.   

    UPDATE T_CGHTGZCX125
       SET F_RKDDHSL = (SELECT SUM(KCRKD2_SSSL)
                          FROM HMHTGY, KCRKD2, BFGBD, BFGBGL
                         WHERE BFGBD_LSBH = KCRKD2_GBDLS
                           AND HMHTGY_LSBH = BFGBGL_LYLS
                           AND BFGBGL_LSBH = BFGBD_LSBH)
     WHERE F_HTBH IN (SELECT HMHTGY_HTBH
                        FROM HMHTGY, KCRKD2, BFGBD, BFGBGL
                       WHERE BFGBD_LSBH = KCRKD2_GBDLS
                         AND HMHTGY_LSBH = BFGBGL_LYLS
                         AND BFGBGL_LSBH = BFGBD_LSBH)这个语句没问题吧。SELECT SUM(KCRKD2_SSSL)
      FROM HMHTGY, KCRKD2, BFGBD, BFGBGL
     WHERE BFGBD_LSBH = KCRKD2_GBDLS
       AND HMHTGY_LSBH = BFGBGL_LYLS
       AND BFGBGL_LSBH = BFGBD_LSBH
     WHERE F_HTBH IN (SELECT HMHTGY_HTBH
                        FROM HMHTGY, KCRKD2, BFGBD, BFGBGL
                       WHERE BFGBD_LSBH = KCRKD2_GBDLS
                         AND HMHTGY_LSBH = BFGBGL_LYLS
                         AND BFGBGL_LSBH = BFGBD_LSBH)
    这个语句就有问题
      

  3.   

    UPDATE T_CGHTGZCX125 a SET F_RKDDHSL = (SELECT SUM(KCRKD2_SSSL) 
    FROM HMHTGY,KCRKD2,BFGBD,BFGBGL 
    WHERE BFGBD_LSBH = KCRKD2_GBDLS AND HMHTGY_LSBH = BFGBGL_LYLS AND BFGBGL_LSBH=BFGBD_LSBH and a.F_HTBH=HMHTGY_HTBH) 
    WHERE F_HTBH IN 
    (SELECT HMHTGY_HTBH FROM HMHTGY,KCRKD2,BFGBD,BFGBGL 
    WHERE BFGBD_LSBH = KCRKD2_GBDLS AND HMHTGY_LSBH = BFGBGL_LYLS AND BFGBGL_LSBH = BFGBD_LSBH)
      

  4.   

    WHERE F_HTBH IN (SELECT HMHTGY_HTBH FROM HMHTGY,KCRKD2,BFGBD,BFGBGL 
     这句下有红线  说明这句错了!  你上边已经有一个where了  这里又一个where当然会出错  改成 and
      

  5.   

    update语句
    貌似没啥问题啊 
      

  6.   

    这个应该是用存储过程写吧 oracle里貌似不能一次按不用的条件进行update