SQL Server rekursive Abfrage
Ich bin neu in der SQL Server-Entwicklung. Die meiste Erfahrung habe ich mit Oracle gemacht.
Angenommen, ich habe die folgende Tabelle, die Terminobjekte enthält
CREATE TABLE [dbo].[Appointments](
[AppointmentID] [int] IDENTITY(1,1) NOT NULL,
.......
[AppointmentDate] [datetime] NOT NULL,
[PersonID] [int] NOT NULL,
[PrevAppointmentID] [int] NULL,
CONSTRAINT [PK_Appointments] PRIMARY KEY CLUSTERED ([AppointmentID] ASC)
Ein Termin kann verschoben werden. In diesem Fall wird in der Tabelle eine neue Zeile mit dem Feld "PrevAppointmentID" erstellt, die die ID des ursprünglichen Termins enthält.
Ich möchte eine Abfrage durchführen, um den Verlauf der Termine einer Person abzurufen. Wenn zum Beispiel der Termin mit ID = 1 zweimal verschoben wird und diese Verschiebungen Termine mit ID = 7 und ID = 12 für dieselbe PersonID erstellt haben, möchte ich eine Abfrage durchführen, die die folgenden Ergebnisse zurückgibt:
AppointmentID PrevAppointmentID
----------------- ----------------------
1 NULL
7 1
12 7
Wenn ich Oracle verwende, erinnere ich mich, dass so etwas mit der CONNECT BY PRIOR-Klausel erhalten werden kann.
ibt es eine Möglichkeit, eine Abfrage durchzuführen, um diese Ergebnisse zu erziele
Ich verwende SQL Server 2005 / 2008.
Danke im Vorau