Похоже, вам требуется агрегация и конкатенация строк:
select Downstream_ID as Plant_ID,
string_agg(Plant_Id, ',') within group (order by Plant_Id) as UpStream_Lkup
from t_plants p
where Downstream_ID IS NOT NULL
group by Downstream_ID;
Примечание: string_agg()
- это новая функция в SQL Server. В старых версиях вам нужно будет использовать версию XML:
select dp.Downstream_ID,
stuff( (select concat(',', p.Plant_Id)
from t_plant p
where p.Downstream_ID = dp.Downstream_ID
for xml path ('')
), 1, 1, ''
) as UpStream_Lkup
from (select distinct p.Downstream_ID
from t_Plants p
) dp;