ora-00904 :"B"."TT_ROW_ID":无效的标识符 请专家帮忙看下,谢谢啦CREATE OR REPLACE VIEW V_WIRE_APPROVE AS
SELECT A.ROW_ID,
   DECODE(A.NUM1, '0', '未审批', '1', '已审批', '2', '审批中', A.NUM1) CMCHECKFLG,
   B.TYPENAME,
   B.STEPNUM,
   B.TIMELIMIT,
   B.TRANSACTORID,
   B.ISACCOUNT,
   B.STR1   FROM HJBO_WIRE_INFO A, HJBO_WIRE_APPROVE B
  WHERE A.ROW_ID = B.TT_ROW_ID
   AND (STEPNUM = 1 OR EXISTS  
  (SELECT 1
   FROM (SELECT ISACCOUNT, STEPNUM
   FROM HJBO_WIRE_APPROVE
   WHERE TT_ROW_ID = B.TT_ROW_ID) C
   WHERE C.ISACCOUNT = '1'
   AND C.STEPNUM = B.STEPNUM - 1))
   AND A.STR2 = '1'
   AND B.ISACCOUNT IS NULL;

解决方案 »

  1.   

    (SELECT 1
      FROM (SELECT ISACCOUNT, STEPNUM
      FROM HJBO_WIRE_APPROVE
      WHERE TT_ROW_ID = B.TT_ROW_ID) 
    --这块这样写就行:
    (SELECT 1 FROM HJBO_WIRE_APPROVE
     WHERE TT_ROW_ID = B.TT_ROW_ID)并且确认一下在表HJBO_WIRE_APPROVE中是否有TT_ROW_ID字段。
      

  2.   

    不要重复发帖哦。最外层的表B 隔了2层是找不到的。到这个里面 
    (SELECT ISACCOUNT, STEPNUM
      FROM HJBO_WIRE_APPROVE
      WHERE TT_ROW_ID = B.TT_ROW_ID)
      B是无法识别的
    SELECT A.ROW_ID, DECODE(A.NUM1, '0', '未审批', '1', '已审批', '2', '审批中', A.NUM1) CMCHECKFLG, B.TYPENAME, B.STEPNUM, B.TIMELIMIT, B.TRANSACTORID, B.ISACCOUNT, B.STR1 FROM HJBO_WIRE_INFO A, HJBO_WIRE_APPROVE B WHERE A.ROW_ID = B.TT_ROW_ID AND (STEPNUM = 1 OR EXISTS (SELECT 1 FROM HJBO_WIRE_APPROVE C WHERE C.TT_ROW_ID = B.TT_ROW_ID WHERE C.ISACCOUNT = '1' AND C.STEPNUM = B.STEPNUM - 1) ) AND A.STR2 = '1' AND B.ISACCOUNT IS NULL; 
      

  3.   


    CREATE OR REPLACE VIEW V_WIRE_APPROVE AS
    SELECT A.ROW_ID,
      DECODE(A.NUM1, '0', '未审批', '1', '已审批', '2', '审批中', A.NUM1) CMCHECKFLG,
      B.TYPENAME,
      B.STEPNUM,
      B.TIMELIMIT,
      B.TRANSACTORID,
      B.ISACCOUNT,
      B.STR1  FROM HJBO_WIRE_INFO A, HJBO_WIRE_APPROVE B
     WHERE A.ROW_ID = B.TT_ROW_ID
      AND (STEPNUM = 1 OR 
    EXISTS (SELECT 1
      FROM HJBO_WIRE_APPROVE C
      WHERE C.TT_ROW_ID = B.TT_ROW_ID 
      WHERE C.ISACCOUNT = '1'
      AND C.STEPNUM = B.STEPNUM - 1)
      )
      AND A.STR2 = '1'
      AND B.ISACCOUNT IS NULL;