当前位置: 代码迷 >> Oracle管理 >> select语句中select部分提示“未明确定义列”,无解解决方法
  详细解决方案

select语句中select部分提示“未明确定义列”,无解解决方法

热度:96   发布时间:2016-04-24 05:30:19.0
select语句中select部分提示“未明确定义列”,无解
SQL code
SELECT * FROM (      SELECT  LOT.OBJECT_ID,               LOT.CUSTOMER_NAME,               LOT.PKG,               LOT.PART_NAME,               LOT.LOT_ID,               LOT.WAFER_LOT_ID,              LOT.CUSTOMER_ORDER,               PART.PART_NAME4 AS CUST_SHIPNAME,              LOT.START_MAIN_QTY,               LOT.DATE_CODE,              LOT.START_TIME,              LOT.UPDATED,              LOT.START_SUB_QTY,             (SELECT SUB_QTY  FROM WIPHIS_LOT WHERE HISTORY_SEQ =                (                  SELECT MAX(HIS.HISTORY_SEQ)                    FROM WIPHIS_LOT HIS,WF_PROCESSDEFINITION STEP                       WHERE HIS.STEP_ID = STEP.OBJECT_ID                         AND HIS.LOT_ID= LOT.LOT_ID                         AND STEP.COMPLETE_TYPE ='TEST')              )                    AS TEST,               LOT.SUB_QTY                    AS TEST_OUT,               (TRUNC                 ((LOT.SUB_QTY / LOT.START_SUB_QTY),4)*100               )                    AS YIELD,               (LOT.START_SUB_QTY - LOT.SUB_QTY)                    AS TOL_REJ       FROM   WIP_LOT LOT,             PRD_PART PART      WHERE  LOT.PART_ID=PART.OBJECT_ID                  AND LOT.OBJECT_ID IN      (           SELECT DISTINCT HIS.LOT_OBJECT_ID             FROM WIPHIS_LOT HIS,                 AD_ORG ORG              WHERE HIS.TRANS_TYPE = 'SHIPLOT'               AND HIS.AD_ORG_ID = ORG.AD_ORG_ID               AND HIS.SUB_QTY > 0               AND ORG.NAME IN ('30-TEST')           UNION         SELECT DISTINCT HIS.LOT_OBJECT_ID            FROM WIPHIS_LOT HIS,                AD_ORG ORG              WHERE  HIS.COM_CLASS = 'WIP'               AND HIS.AD_ORG_ID = ORG.AD_ORG_ID               AND HIS.SUB_QTY > 0                AND ORG.NAME IN ('30-TEST')      )       ) T1  left join       (              SELECT HIS.LOT_OBJECT_ID,              SBC.ACTION_CODE,              SBC.SUB_QTY,             HIS.TRANS_TYPE,             HIS.HISTORY_SEQ,             HIS.SUB_QTY,             HIS.STEP_NAME      FROM WIPHIS_LOT HIS,WIPHIS_SBD SBC      WHERE SBC.HISTORY_ID = HIS.OBJECT_ID          AND HIS.LOT_OBJECT_ID IN           (             SELECT DISTINCT ORG.OBJECT_ID                FROM WIPHIS_LOT HIS,                     AD_ORG ORG                 WHERE HIS.TRANS_TYPE = 'SHIPLOT'                  AND HIS.AD_ORG_ID = ORG.AD_ORG_ID                  AND HIS.SUB_QTY > 0                  AND ORG.NAME IN ('30-TEST')            UNION            SELECT DISTINCT ORG.OBJECT_ID                 FROM WIPHIS_LOT HIS,                    AD_ORG ORG                 WHERE  HIS.COM_CLASS = 'WIP'                  AND HIS.AD_ORG_ID = ORG.AD_ORG_ID                  AND HIS.SUB_QTY > 0                  AND ORG.NAME IN ('30-TEST')          )          ) T2        ON  T1.OBJECT_ID = T2.LOT_OBJECT_ID           ORDER BY T2.LOT_OBJECT_ID,T2.HISTORY_SEQ;            


在plsql developer中运行时,select处有红色波浪线提示,运行后提示“未明确定义列”。
原因不清楚。请大神们指教。

------解决方案--------------------
这样的错误,通常是没有列别名有问题,或者重复使用了别名,

看看那你的别名列都使用对了么
------解决方案--------------------
OBJECT_ID 是不是关键字?
------解决方案--------------------
SELECT * FROM 
(
SELECT LOT.OBJECT_ID, 
LOT.CUSTOMER_NAME, 
LOT.PKG, 
LOT.PART_NAME, 
LOT.LOT_ID, 
LOT.WAFER_LOT_ID,
LOT.CUSTOMER_ORDER, 
PART.PART_NAME4 AS CUST_SHIPNAME,
LOT.START_MAIN_QTY, 
LOT.DATE_CODE,
LOT.START_TIME,
LOT.UPDATED,
  相关解决方案