Самостоятельное соединение в SQL Server 2005 - PullRequest
0 голосов
/ 10 января 2012

У меня следующие данные таблицы:

Company_ID  Parent_Id    Name       SigningGroup
129         109          A          SG1
144         105          B          SG2

Вывод, который я хочу получить, ниже

 Company_ID     Parent_Id   Name    SigningGroup
 129            109         A       SG1
 109            NULL        X       SG1
 144            105         B       SG2
 105            NULL        Y       SG2

Пожалуйста, помогите. Какой будет запрос для получения вышеуказанного результата.

Ответы [ 3 ]

1 голос
/ 10 января 2012

выберите Company_ID, Parent_Id, Name, SigningGroup, из t union выберите Parent_Id, null, Name, SigningGroup из t

1 голос
/ 10 января 2012

Попробуйте:

; with cte as
(select Company_ID, Parent_Id, Name, SigningGroup
 from my_table
 union all
 select cte.Parent_Id Company_ID, t.Parent_Id, cte.Name, cte.SigningGroup
 from my_table t join cte on cte.Parent_Id = t.Company_ID)
select * from cte
0 голосов
/ 10 января 2012

Это не само присоединение, потому что нечего ПРИСОЕДИНЯТЬСЯ

Вы можете генерировать желаемый результат, как это, хотя

SELECT Company_ID, Parent_ID, [Name], SigningGroup FROM MyTable
UNION ALL
SELECT Parent_ID,  NULL,      [Name], SigningGroup FROM MyTable
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...