私は私のせいを見つけようとしています。次のエラーメッセージが表示されます。
SQL-Fehler:ORA-00904: "S1"。 "PARTNO":ungültigerBezeichner 00904. 00000-"%s:invalid identifier"
データベースを確認しましたが、すべてのテーブルが存在します。
これが私の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
内部選択(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"
列名を二重引用符で囲むと、大文字と小文字が区別されます。だから私はこの行を考えます:
s.partno as "Partno"
は大文字と小文字を区別するs1。 "Partno"を作成していますが、where
句はs1.partnoを探しています。列のエイリアスから二重引用符を削除してみてください。