0

重複の可能性:
IDに基づいて値を連結します

私は2つのテーブルを持っています

table1には

pkUserSubjectid  UserId  fkSubjectId
   15              146     1
   16              146     2
   17              146     4
   18              147     1
   19              147     3
   20              148     1
   21              148     3
   22              149     1
   23              149     3 

表2には

pkSubjectId   SubjectName
      1        Maths
      2        English
      3        Physics
      4        Chemistry
      5        Computer 

この形式で結果が欲しい

 UserId     SubjectName
   146       Maths, English, Chemistry
   147       Maths, Physics

等々

SQLのクエリを教えてください

4

1 に答える 1

0

clr集計関数を作成することを検討してください。msdnのexample関数はこのために機能します。

http://msdn.microsoft.com/en-us/library/ms131056(v=sql.100).aspx

その後、次のようなことを行うことができます

SELECT a.[UserId], dbo.MyAgg(b.[SubjectName]) as [SubjectName] 
FROM table1 as a 
LEFT OUTER JOIN table2 as b ON a.[fkSubjectId] = b.[pkSubjectId] 
GROUP BY a.[UserId] 

この例では、単一のパラメーターを使用し、区切り文字として「、」を使用しています。2番目の例のように2パラメーター関数を作成して、区切り文字を渡すこともできます。

于 2012-04-07T09:45:24.930 に答える