Basé sur les 2 arrays ci-dessous
declare @t1 table ( Id int, Title varchar(100), RelatedId int ) insert into @t1 values(1,'A',2) insert into @t1 values(1,'A',3) declare @t2 table ( Id int, Title varchar(100) ) insert into @t2 values (2,'B'), (3,'C')
J'essaie d'get la sortie ci-dessous
Id Title RelatedItems --------------------------------- 1 A 2 (B), 3 (C)
J'ai essayé ce qui suit:
select t1.Id,t1.Title, cast(t2.Id as varchar) + ' (' + t2.Title + ')' from @t1 as t1 left outer join @t2 as t2 on t1.RelatedId=t2.Id
Mais cela donne 2 lignes différentes. Je veux juste une ligne avec datatables combinées dans la troisième colonne (comme indiqué ci-dessus). Pls. suggérer.
Utilisation:
SELECT DISTINCT b.id, b.title, STUFF((SELECT ','+ CAST(t2.id AS VARCHAR(100)) + ' ('+ t2.title +')' FROM t2 JOIN t1 a ON a.relatedid = t2.id WHERE a.id = b.id FOR XML PATH('')), 1, 1, '') FROM t1 b