【发布时间】:2010-10-25 16:44:08
【问题描述】:
几天前我问了一个关于help on a recursive query的问题。
那个问题的问题是“如何获取一个人的约会历史”。
现在我遇到了一个类似的问题,但它应该回答一个稍微不同的问题:
How to get an Appointment history?
例如,如果 ID = 5 的约会被推迟了一次,并且是另一个约会的推迟,我如何得到以下结果?
AppointmentID PrevAppointmentID
----------------- ----------------------
1 NULL
5 1
12 5
感谢您的帮助
更新:
这些脚本将有助于为您的试验创建表
CREATE TABLE [dbo].[Appointments](
[AppointmentID] [int] IDENTITY(1,1) NOT NULL,
[IssueID] [int] NOT NULL,
[Location] [varchar](255) NOT NULL,
[Description] [varchar](255) NOT NULL,
[AppointmentDate] [datetime] NOT NULL,
[AppointmentHour] [datetime] NOT NULL,
[Done] [bit] NOT NULL,
[PrevAppointmentID] [int] NULL,
CONSTRAINT [PK_Appointments] PRIMARY KEY CLUSTERED
(
[AppointmentID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
【问题讨论】:
-
如果您可以更改设计,请考虑使用有效日期行
-
@Brad:“有效日期行”是什么意思?
-
这是一个冗长的解释,所以我添加了另一个答案。
标签: sql-server sql-server-2008 recursive-query