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)
    另外再确认一下,表B里的确有TT_ROW_ID字段
      

  2.   


    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;
      

  3.   

    将建表的sql语句贴出来,可以实际测一下。