ORACLE SQL ORA-00918:进行查询时定义不明确的列



我想制作查询数据,从几个表中获取,当我尝试执行查询 SQL 时,出现了来自 SQL 的错误信息。

ORA-00918:列定义不明确。00918. 00000 - "列定义不明确">

SELECT t1.inst_no,
t1.itm_cd,
t3.itm_nm,
t1.prod_loc_cd,
DECODE(t1.bom_ptn,
1,'1 : IM',
2,'2 : SUBCON',
3,'3 : SW',
4,'4 : TRIAL',
5,'5 : CUSTOM'
) bom_ptn,
t1.prod_schd_qty,
t1.mld_br_no,
t4.ins_ts,
sum(t4.act_qty) ok,
sum(t5.act_qty) defective,
((sum(t4.act_qty)) - t1.prod_schd_qty) "DIFF(W/OUT DEFECT)"
FROM st_sashizu_all t1,
st_seizojis_all t2,
cm_hinmo_all t3,
st_dekidaka_all t4,
(SELECT prod_act_no,
itm_cd,
sum(act_qty) act_qty
FROM st_dekidaka_all
WHERE qual_typ = '0'
GROUP BY prod_act_no,
itm_cd) t4,
(SELECT prod_act_no,
itm_cd,
sum(act_qty) act_qty
FROM st_dekidaka_all
WHERE qual_typ = '1'
GROUP BY prod_act_no,
itm_cd
) t5
WHERE 0 = 0
AND t1.inst_no = t2.inst_no
AND t2.prod_act_no = t4.prod_act_no (+)
AND t2.prod_act_no = t5.prod_act_no (+)
AND t1.itm_cd = t3.itm_cd
AND t1.itm_cd = t4.itm_cd
AND t4.ins_ts >= to_date(:qstart_date, 'DDMMYYYY hh24:mi:ss')
AND t4.ins_ts <= to_date(:qend_date, 'DDMMYYYY hh24:mi:ss')
GROUP BY t1.inst_no,
t1.itm_cd,
t3.itm_nm,
t1.prod_loc_cd,
t1.bom_ptn,
t1.prod_schd_qty,
t1.mld_br_no
ORDER BY 1,
2,
3

我没有任何想法来修复它,我尝试用不同的方式制作,但它没有奏效。这里有人可以帮助我纠正这个问题吗?

在我看来,您有两个名为 T4 的别名。

一个在,ST_DEKIDAKA_ALL T4,,第二个在(SELECT PROD_ACT_NO, ITM_CD, SUM(ACT_QTY) ACT_QTY FROM ST_DEKIDAKA_ALL where QUAL_TYP = '0' GROUP BY PROD_ACT_NO, ITM_CD) T4,(

请重命名其中之一,它应该可以工作

最新更新