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

Antworten auf die Frage(2)

Ihre Antwort auf die Frage