Надеюсь, кто-то может помочь - я начинающий хакер SQL (и действительно очень плох в этом!)
У меня есть две таблицы на SQL Server 2005 ТАБЛИЦА 1 и ТАБЛИЦА 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 в TABLE2 является символьным представлением числовых данных в COL2 TABLE1. Надеюсь это понятно?
Я разработал, как выбрать COL1 и COL2 из TABLE1 и объединить результаты, чтобы показать это:
COL1 COL2Concat
1 10
2 20
3 30
4 10, 20
5 20
6 30
7 10, 20, 30
Используя это:
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
Но теперь я хотел бы попытаться получить тот же результат, за исключением использования данных в COL2 TABLE2 ... т.е. ::
COL1 COL2Concat
1 A
2 B
3 C
4 A, B
5 B
6 C
7 A, B, C
Любые идеи - я застрял, если честно, пытаясь изменить запрос STUFF, но, похоже, он никогда не получался правильным ...