SQL Server カンマ区切りの列データで取得

実現したいこと

縦に並んだデータを横にカンマ区切りの列データで取得する方法
テーブルA
番号|言語ID
1|001
1 | 002
1 | 003
2 | 004
2 | 005

テーブルB
言語ID | 言語名
001|Java
002 | Javascript
003 | C#
004 | HTML
005 | CSS

上記のような二つのテーブルがあります。

求めている結果は
1| Java,Javascript,C#
2| HTML,CSS
です。

発生している問題・エラーメッセージ

https://webbibouroku.com/Blog/Article/forxmlpath
こちらの記事を参考にしましたが、
1|Java,
1 | Javascript,
1 | C#,
2 | HTML,
2 | CSS,
このように表示されてしまいます。

該当のソースコード

SELECT テーブルA.番号,
(SELECT テーブルB.言語名 + ','
FROM テーブルB
WHERE テーブルA.言語ID = テーブルB.言語ID
FOR XML PATH(''))AS 言語
FROM テーブルA

コメントを投稿

0 コメント