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
).
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