quelqu'un Hope peut aider, je suis un hacker SQL noviceT-SQL - - concaténation chaîne
J'ai deux tables sur SQL Server 2005 TABLEAU 1 et TABLEAU 2:
TABLE1
COL1 COL2
1 10
2 20
3 30
4 10
4 20
5 20
6 30
7 10
7 20
TABLE2
COL1 COL2
10 A
20 B
30 C
COL2 dans TABLE2 est une représentation de caractères des données numériques dans COL2 TABLE1. J'espère que c'est compréhensible?
Je travaille comment sélectionner COL1 et COL2 de table1 et concaténer les résultats pour montrer ceci:
COL1 COL2Concat
1 10
2 20
3 30
4 10, 20
5 20
6 30
7 10, 20, 30
En utilisant ceci:
SELECT COL1,
STUFF((SELECT ',' + CAST(a.COL2 AS VARCHAR(255)) AS [text()]
FROM TABLE1 a
WHERE a.COL1 = b.COL1
ORDER BY a.COL2
FOR
XML PATH('')
), 1, 1, '') AS COL2Concat
FROM TABLE1 b
GROUP BY COL1
ORDER BY COL1
Mais maintenant, je voudrais essayer de obtenir le même résultat, sauf utiliser les données dans COL2 TABLE2 ... soit:
COL1 COL2Concat
1 A
2 B
3 C
4 A, B
5 B
6 C
7 A, B, C
Toutes les idées - Je suis coincé pour être honnête comme je l'ai essayé de modifier la requête STUFF, mais il semble ne jamais sortir ... droit
Vous voulez montrer A, B, C au lieu de 10, 20, 30? – LittleBobbyTables
Vraisemblablement, vous avez essayé de simplement changer tous les 'TABLE1' dans votre requête à' TABLE2'. Je ne vois pas pourquoi cela ne fonctionne pas. Qu'est ce que tu obtiens? –
Oui exactement .. les exemples sont simplistes, mais j'ai besoin de montrer A, B, C concaténés comme 10, 20, 30 ont été. – JamesH