J'ai besoin d'un peu d'aide pour get les résultats dont j'ai besoin. J'ai 2 tables avec un champ commun d' id
. Je veux combiner les valeurs de la table B qui ont le même id
id | name | somevalue1 1 | dud | 12345 2 | duda | 8908
id | somevalue2 1 | 56545 2 | 545665 1 | 89875 2 | 12524
id | somevalue2 combined 1 | 56545, 89875 2 | 545665, 12524
J'ai essayé d'utiliser une Join
, mais je suis un peu perdu. J'ai essayé de faire une sous-sélection, mais la seule façon de le faire fonctionner est de faire reference à la requête principale à partir de la sous-sélection, mais cela ne l'est pas non plus.
Cette requête que j'ai essayée se bloque:
select distinct a.id,( select b.somevalue2 + ', ' as [text()] from tableB b where b.id = a.id and b.somevalue2 is not null for xml path('')) as [ColumnName] from tableA a order by a.id asc
Je pense que je dois mentionner que TableB a plus de 400 000 lignes. TableA a seulement environ 1500 lignes.
Cela marche:
SELECT A.*, STUFF(( SELECT ', ' + CAST([somevalue2] AS VARCHAR(20)) FROM TableB B WHERE A.id = B.id FOR XML PATH ('')), 1, 1, '') FROM TableA A
Voici un sqlfiddle pour vous d'essayer.