У меня есть две таблицы с такими данными (код T-sql для создания):
CREATE TABLE [dbo].[IdChanges](
[ReplacedId] [int] NOT NULL,
[OverrideId] [int] NOT NULL
);
INSERT INTO dbo.IdChanges(ReplacedId,OverrideId)VALUES(17,18);
INSERT INTO dbo.IdChanges(ReplacedId,OverrideId)VALUES(18,19);
INSERT INTO dbo.IdChanges(ReplacedId,OverrideId)VALUES(19,20);
INSERT INTO dbo.IdChanges(ReplacedId,OverrideId)VALUES(12,13);
INSERT INTO dbo.IdChanges(ReplacedId,OverrideId)VALUES(13,14);
CREATE TABLE [dbo].[IdActivity](
[Id] [int] NOT NULL,
[IsActive] [bit] NOT NULL
);
INSERT INTO dbo.IdActivity(Id,IsActive)VALUES(14,1);
INSERT INTO dbo.IdActivity(Id,IsActive)VALUES(20,1);
INSERT INTO dbo.IdActivity(Id,IsActive)VALUES(17,0);
INSERT INTO dbo.IdActivity(Id,IsActive)VALUES(18,0);
INSERT INTO dbo.IdActivity(Id,IsActive)VALUES(19,0);
INSERT INTO dbo.IdActivity(Id,IsActive)VALUES(12,0);
INSERT INTO dbo.IdActivity(Id,IsActive)VALUES(13,0);
go
Как получить (рекурсивным запросом cte или другим способом) результат с каждым идентификатором ReplacedId и Last Overrideв цепочке изменений.Я ожидаю, что результат в точности как ниже.5 строк ... Возможен ноль в результате
ReplacedId LastOverrideId
17 20
18 20
19 20
12 14
13 14