Вернуть несколько значений в другую группу с помощью CTE - PullRequest
0 голосов
/ 22 июня 2019

Я пытаюсь вернуть все связанные значения, которые могут существовать в нескольких группах.Вот данные настройки:

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).

...