gpt4 book ai didi

database - oracle 内部连接上的标识符无效

转载 作者:搜寻专家 更新时间:2023-10-30 20:02:32 25 4
gpt4 key购买 nike

我遇到错误 ORACLE: ORA-00904: Invalid Identifier on:

and l.cd_pergunta = e.cd_pergunta

无效的标识符是'e',cd_pergunta的前缀...

当我执行这个查询时:

select count(*)
from TEACEITE e
inner join TEREGETA re on re.cd_etapa = e.cd_etapa
and re.id_reg_neg = 1.00000000
where e.obrigatorio = 1
and not exists
(select 1
from GESESSAO s
inner join GERESPOS r on r.sessao = s.sessao_resp
and r.resposta_log = 1
inner join GEEPE l on l.cd_quest = s.cd_quest
and l.ord_perg = r.ord_pergunta
and l.cd_pergunta = e.cd_pergunta
where s.cd_quest = e.cd_quest
and s.item = e.cd_etapa
and s.origem = 'GC'
and s.os_nf_orc_cont = 1.00000000)

有什么想法吗?

最佳答案

问题是别名 e 在嵌套选择中不可用,因此是“无效标识符”。您可以尝试重写查询,使条件 s.cd_quest = e.cd_quest 和 s.item = e.cd_etapa 成为主选择的一部分,而不是嵌套选择的一部分。

编辑:我尝试了一些场景,问题是别名 e 在嵌套查询的连接解析期间不可用。看起来您不能在内部查询的连接条件中引用外部表别名。

我相信下面的方法会起作用

  select count(*)
from TEACEITE e
inner join TEREGETA re on re.cd_etapa = e.cd_etapa
and re.id_reg_neg = 1.00000000
where e.obrigatorio = 1
and not exists
(select 1
from GESESSAO s
inner join GERESPOS r on r.sessao = s.sessao_resp
and r.resposta_log = 1
inner join GEEPE l on l.cd_quest = s.cd_quest
and l.ord_perg = r.ord_pergunta
where l.cd_pergunta = e.cd_pergunta
and s.cd_quest = e.cd_quest
and s.item = e.cd_etapa
and s.origem = 'GC'
and s.os_nf_orc_cont = 1.00000000)

虽然此查询可能有效,但我不确定它是否完成了您想要的,请确保您的业务逻辑也得到处理。

关于database - oracle 内部连接上的标识符无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10500048/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com