首页 > 解决方案 > 尝试了以下查询,但得到错误为 ORA-00904: "RTE_LOC"."RCRD_STTS_VAL": invalid identifier

问题描述

SELECT
cast(RTE_LOC.SYS_ID as decimal(11)) as SYS_ID , 
RTE_LOC.GTMU_ID, 
RTE_LOC.RTE_ID,
RTE_LOC.LOC_ID,
RTE_LOC.LOC_UNIQ_ID_VAL, 
RTE_LOC.RLTNSHP_TYP_CDV,
RTE_LOC.RLTNSHP_STRT_DT,
RTE_LOC.RLTNSHP_END_DT,
RTE_LOC.LOC_RTE_LOAD_SEQ_VAL,
RTE_LOC.RCRD_STTS_VAL,
RTE_LOC.RTE_UNIQ_ID_VAL,'US' as LOC_CTRY_CODE,
'US28' as LOC_CO_CODE
FROM 
    (SELECT * 
     FROM 
         (SELECT RTE_LOC1.*, 
          RANK() OVER (PARTITION BY 
          RTE_LOC1.SYS_ID,
          RTE_LOC1.LOC_ID, 
          RTE_LOC1.LOC_UNIQ_ID_VAL, 
          RTE_LOC1.GTMU_ID, 
          RTE_LOC1.RLTNSHP_STRT_DT,
          RTE_LOC1.RLTNSHP_TYP_CDV,
          RTE_LOC1.RTE_ID, 
          RTE_LOC1.RTE_UNIQ_ID_VAL 
          ORDER BY  
         RTE_LOC1.DIH__PUBLICATION_INSTANCE_DATE DESC) AS RNK 
          FROM RTE_*** RTE_LOC1 
          WHERE '1'='$$QRY_PARAM')
 RTE_LOC2 
 WHERE RNK=1) RTE_LOC

标签: sql

解决方案


您收到错误是因为 RTE_LOC.RCRD_STTS_VAL 列可能在您的内部查询中不存在 - 因此您无法在外部查询中选择它。


推荐阅读