use*_*496 8 sql oracle oracle-sqldeveloper
我正在努力找到我的错.我收到此错误消息:
SQL-Fehler:ORA-00904:"S1"."PARTNO":ungültigerBezeichner00904. 00000 - "%s:无效标识符"
我检查了我的数据库,所有表都存在.
这是我的sql代码:
select s1.*
, p.city as "Produktionsort"
, p.partname
from (select count(s.partno) as "Anzahl_Produktarten"
, s.partno as "Partno"
from company.supp_part_job s
group by s.partno ) s1
, company.part p
where s1.partno IN (select p1.partno from company.part p1 where p1.city != 'London')
and p.partno = s1.partno
group by s1.partno
Run Code Online (Sandbox Code Playgroud)
因为您在内部选择 (s1) 中设置了别名,partno因为"Partno"您必须在外部查询中将其称为区分大小写:
select s1.*
, p.city as "Produktionsort"
, p.partname
from (select count(s.partno) as "Anzahl_Produktarten"
, s.partno as "Partno"
from company.supp_part_job s
group by s.partno ) s1
, company.part p
where s1."Partno" IN (select p1.partno from company.part p1 where p1.city != 'London')
and p.partno = s1."Partno"
group by s1."Partno"
Run Code Online (Sandbox Code Playgroud)
如果在列名称两边加上双引号,则会使其区分大小写。所以我认为这一行:
s.partno as "Partno"
Run Code Online (Sandbox Code Playgroud)
正在创建区分大小写的 s1."Partno",但该where子句正在查找 s1.partno。尝试从列别名中删除双引号。