Ora 9i: komplizierte Abfrage?

Hallo,

ich habe zwei Tabellen zu Polygonen.

Eine enthält die Info, welches Polygon aus welchen Linien besteht, die andere enthält die Info, welche Linien vom Benutzer ausgewählt wurden.
Ich brauche nun eine Abfrage, die mir zurückgibt, welche Polygone vollständig ausgewählt wurden (also alle Linien dieses Polygons.

Beispiel:

Tab ausgewählte Linien Tab Polygone
 L1 P1 L1
 L2 P1 L2
 L3 P1 L3
 L4 P2 L3
 P2 L4
 P2 L5
 P2 L6

als Resultat müsste P1 herauskommen, da nur von diesem alle Linien gewählt wurden.

Derzeit arbeite ich mit zwei Hilfstabellen / Views: Eine enthält die Anzahl der Linien, aus denen jedes Polygon besteht, die andere die Anzahl Linien, die von jedem Polygon ausgewählt wurden. Sind beide Werte gleich, so wurde das Polygon vollständig gewählt.

Irgendwie muss das doch auch einfacher gehen.

Gruß, Niels

Hallo Niels!

Ganz trivial ist der hier immer noch nicht, müsste aber funktionieren, wenn ich keinen Knopf im Hirn hab (evtl. geht’s auch noch einfacher, der ist mir nur als erstes eingeschossen):

select distinct figure from polygons p1 
where not exists 
 (select figure from selectedlines l, polygons p2 
 where l.line(+)=p2.line and 
 l.line is null and 
 p1.figure=p2.figure);

Nachdem du ja schon eine funktionierende Lösung hast, solltest du ja einen hübschen Regressionstest machen können (selbst ich irre mich nämlich hin und wieder :wink:).

Gruß
Martin

Danke für die Frage (kT)
kT = kein Text

Danke für die Antwort (mT)
Hallo,

tut mir leid erst jetzt antworten zu können.
Ich war eine Woche in Urlaub und dann mit einem anderen Projekt beschäftigt.
Deine Lösung habe ich deshalb auch noch nicht ausprobieren können. Erst Montag gehts dann wieder mit dem alten Projekt weiter.

Viele Grüße,
Niels