SQLServerの開発は初めてです。私の経験のほとんどはOracleで行われています。
Appointmentsオブジェクトを含む次のテーブルがあるとします
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)
アポイントメントは延期できるため、これが発生すると、元のアポイントメントのIDを含むPrevAppointmentIDフィールドを使用して新しい行がテーブルに作成されます。
個人の予定の履歴を取得するためにクエリを実行したいと思います。たとえば、ID = 1のappoinmentが2回延期され、これらの延期によって同じPersonIDに対してID=7とID=12の予定が作成された場合、次の結果を返すクエリを作成します。
AppointmentID PrevAppointmentID
----------------- ----------------------
1 NULL
7 1
12 7
Oracleを使用している場合、このようなものはCONNECTBYPRIOR句を使用して取得できることを覚えています。
これらの結果を達成するためにクエリを実行する方法はありますか?
SQLServer2005/2008を使用しています。
前もって感謝します