在SQL服务器TSQL - while循环内选择?
好吧,我正在处理一个数据库表,其中行可以有父行,然后可以有父行自己的行。我需要选择根“行”。我不知道这样做的最好方法。
有一个名为ParentId的字段,该字段将行连接到具有该ID的行。当ParentId = 0时,它是根行。
这是现在我的查询:
SELECT Releases.Name,WorkLog.WorkLogId
FROM WorkLog,Releases
WHERE
Releases.ReleaseId = WorkLog.ReleaseId
and WorkLogDateTime >= @StartDate
and WorkLogDateTime <= @end
我并不真正需要的释名孩子的版本,我想只有根释名,所以我要选择的结果While循环是这样的:
WHILE (ParentReleaseId != 0)
BEGIN
@ReleaseId = ParentReleaseId
END
Select Release.Name
where Release.RealeaseId = @ReleaseId
我知道,语法是可怕的,但我希望我给你的是什么我想acheive的想法。
所以我猜有不止一个版本与'ParentReleaseId'等于零? – AakashM
您是否在说新闻稿表是层次结构的,例如版本X有前任,然后该版本有自己的前任,等等?所以问题在于找到指定日期内发布的任何*后期*版本的* original *版本? –
希望你在2005年或以后 - 你能证实吗? –