Я пытаюсь вернуть все связанные значения, которые могут существовать в нескольких группах.Вот данные настройки:
GroupID Value
1 v2
1 v4
2 v2
2 v94
3 v4
3 v95
Я пробовал этот CTE, но что-то не так.Ошибка для максимального количества возвращаемых строк.
;WITH CTE
AS
(
SELECT DISTINCT
T1.GroupID ,
T1.Value
FROM table1 T1
LEFT JOIN table1 T2
ON T1.GroupID = T2.GroupID
WHERE T1.Value='V94'
UNION ALL
SELECT
C.GroupID,
T.Value
FROM dbo.table1 T
JOIN CTE C
ON T.Value = C.Value
)
SELECT * FROM CTE
Если я перейду в v94, я ожидаю, что все 6 строк будут возвращены, потому что v94 сгруппирована в v2.v2 сгруппирован по v4 (через groupID = 1), а v4 сгруппирован по v95 (полный groupID = 3).