У меня следующие данные таблицы:
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
Пожалуйста, помогите. Какой будет запрос для получения вышеуказанного результата.
выберите Company_ID, Parent_Id, Name, SigningGroup, из t union выберите Parent_Id, null, Name, SigningGroup из t
Попробуйте:
; 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
Это не само присоединение, потому что нечего ПРИСОЕДИНЯТЬСЯ
Вы можете генерировать желаемый результат, как это, хотя
SELECT Company_ID, Parent_ID, [Name], SigningGroup FROM MyTable UNION ALL SELECT Parent_ID, NULL, [Name], SigningGroup FROM MyTable