得到了在SQL Server 2005中,这是用来维持合并操作的历史记录此表:查找单表链(SQL Server)的最后一个记录
- 列FROM_ID(INT)
- 列TO_ID(int)
现在我需要一个查询,它将原始的FROM_ID作为输入,并返回最后一个可用的TO_ID。
因此,例如:
- ID 1被合并到ID 2
- 稍后,ID 2被合并到ID 3
- 稍后再次,ID 3被合并以ID 4
所以我试图放在一起的查询将作为输入(在WHERE子句中,我假设)ID 1,并且应该给我最后可用的TO_ID作为结果,在这种情况下为4.
我想我需要一些递归逻辑,但不知道如何开始。
谢谢!
马修
经过测试,几乎在那里,除了MAX(ToID)将不起作用,因为合并的目标ID并不总是大于同一链中的先前目标ID ...所以ID 1可以合并为3,然后3可以合并为2,例如 – tjeuten 2010-09-14 15:00:22
可以通过向合并信息添加时间戳并选择“按日期排序的前1个顺序”方法来解决此问题。但想知道是否可以不加时间戳 – tjeuten 2010-09-14 15:09:48