Rekursive Abfrage in einer Tabelle

17/03/2010 - 18:52 von Maxi | Report spam
Hallo zusammen,

ich schon wieder :-)
Hoffe der neue Tread ist ok.

In einer Tabelle, die ich auswerten möchte, beinhaltet Ordnereintràge,
pro Satz gibt es eine ID (die des eigenen Eintrag) und eine SourceID
zu dem Eintrag, unterhalb dessen der aktuelle Eintrag eingehàngt ist.

Bei einer Fehlersuche musste ich diese Tabelle in 7 Selects abfragen
um festzustellen, wo ein Eintrag im Root eingehàngt ist. Das ist etwas
zeitaufwàndig und würde ich gerne in einer rekursiven Abfrage
erledigen.

Zur Schnell-Lösung habe ich mir mit VB.net ein Programm gebastelt, das
hilft mir erst mal weiter, vor allem da kenne ich mich wenigstens
aus :-)

Jetzt die Frage, kann man mit einem Select eine verschachtelte Abfrage
durchführen, wobei ich ja vorher nicht weiss, wie tief die
Verschachtelung ist. So konnte ich mir als erstes helfen, aber das
sieht dann schon recht merkwürdig aus...

Habe das schon mal versucht, aber komme da nicht weiter. Ich habe
verschiedene Selects ineinander gebastelt und prüfe ob SourceID = Null
ist (das wàre dann Ende der Verkettung), aber wenn dann ein Element
mehr dabei ist, dann habe ich Pech gehabt.

Habe auch schon mit einer temporàren Tabelle getestet und nicht
betroffene Eintràge daraus gelöscht, aber das ist auch recht
umstàndlich, wenn es auch zum Ziel führt.

Wie könnte ich das in sauberem Stiel machen?

Gruss,
Maxi
 

Lesen sie die antworten

#1 Christoph Ingenhaag
18/03/2010 - 09:50 | Warnen spam
Hallo Maxi,

schau mal hier:
http://msdn.microsoft.com/en-us/lib...86243.aspx

Wenn du Skripte für die Tabelle und zum Einfügen der Testdaten beifügst,
dann erhàlst du von irgend jemandem hier auch eine exemplarische Lösung.

Viele Grüße
Christoph

"Maxi" schrieb im Newsbeitrag
news:
Hallo zusammen,

ich schon wieder :-)
Hoffe der neue Tread ist ok.

In einer Tabelle, die ich auswerten möchte, beinhaltet Ordnereintràge,
pro Satz gibt es eine ID (die des eigenen Eintrag) und eine SourceID
zu dem Eintrag, unterhalb dessen der aktuelle Eintrag eingehàngt ist.

Bei einer Fehlersuche musste ich diese Tabelle in 7 Selects abfragen
um festzustellen, wo ein Eintrag im Root eingehàngt ist. Das ist etwas
zeitaufwàndig und würde ich gerne in einer rekursiven Abfrage
erledigen.

Zur Schnell-Lösung habe ich mir mit VB.net ein Programm gebastelt, das
hilft mir erst mal weiter, vor allem da kenne ich mich wenigstens
aus :-)

Jetzt die Frage, kann man mit einem Select eine verschachtelte Abfrage
durchführen, wobei ich ja vorher nicht weiss, wie tief die
Verschachtelung ist. So konnte ich mir als erstes helfen, aber das
sieht dann schon recht merkwürdig aus...

Habe das schon mal versucht, aber komme da nicht weiter. Ich habe
verschiedene Selects ineinander gebastelt und prüfe ob SourceID = Null
ist (das wàre dann Ende der Verkettung), aber wenn dann ein Element
mehr dabei ist, dann habe ich Pech gehabt.

Habe auch schon mit einer temporàren Tabelle getestet und nicht
betroffene Eintràge daraus gelöscht, aber das ist auch recht
umstàndlich, wenn es auch zum Ziel führt.

Wie könnte ich das in sauberem Stiel machen?

Gruss,
Maxi

Ähnliche fragen