ORA-00904: Ungültiger Bezeichner in Unterabfrage

Warum die folgende Abfrage funktioniert nicht mit oracle?

select * from ENTITY_OWNERSHIP EO
where 
(select count (*) 
    from (
      select USER_ID 
      from ENTITY_OWNERSHIP 
      where ENTITY_OWNERSHIP.ENTITY_ID = EO.ENTITY_ID
    )
) > 0

Produziert "ORA-00904: "EO"."ENTITY_ID": Ungültiger Bezeichner". Allerdings, wenn ich ersetzen EO.ENTITY_ID mit dem genauen Wert, zum Beispiel, 10181, dann funktioniert es.

UPDATE:
Die vollständige Abfrage sieht wie folgt aus:

select * from ENTITY_OWNERSHIP EO
where 
(select count (*) 
    from (
      select USER_ID 
      from ENTITY_OWNERSHIP 
      where ENTITY_OWNERSHIP.ENTITY_ID = EO.ENTITY_ID

      intersect

      select distinct group_id
      from USERS.GROUPS 
      start with GROUP_ID in (select GROUP_ID from USERS.LK_GROUPS where USER_ID=10001)
      connect by prior PARENTGROUP_ID=GROUP_ID 
    )
) > 0
  • Die filter-Bedingung nicht tun. Sie zählen von Zeilen, die es in entity_ownership - aber Sie sind eine Auswahl aus der gleichen Tabelle. Die count(*) mindestens 1 für jeden Datensatz in der ursprünglichen Tabelle.
  • Ich gab ein Vereinfachtes Beispiel, es ist meine Schuld. Bitte beachten Sie auch die aktualisierte version.
InformationsquelleAutor ako | 2014-02-05
Schreibe einen Kommentar