可能性の重複:
Is there a way to create a SQL Server function to "join" multiple rows from a subquery into a single delimited field?SQL動的列クエリ
私は "イベント" の表を持っており、各イベントは、「1-4(本質的変数#)のAAリストを持っていますユーザー "。つまり、今日のイベントをすべて取得した後、繰り返される行ではなく動的な列数としてユーザーをリストしたいとします。イベントIDと時間のためしかし、重複(複数の列が中にありますが、私はこれで動作することができ、それは許容だ
EventID, Time, Name
211, '4:00am', 'Joe'
211, '4:00am', 'Phil'
211, "4:00am', 'Billy'
218, '7:00am', 'Sally'
218, '7:00am', 'Susan'
:
今私は
SELECT E.EventID, E.Time, U.Name FROM Events
INNER JOIN Users U ON E.UserID = U.UserID
WHERE Date = '12/20/2010'
を持っているこれは、ように私は結果をもたらします私の実際のクエリ)は私にとって無駄に見えます。私が本当に出力のように、このあるでしょう:私は(私はSQL 2008を持っている)ピボットのためのチュートリアルを見て試してみましたが、彼らは概念的に、私がやろうとしているものと一致した場合、私は知らない
EventID, Time, Name1, Name2, Name3
211, '4:00am', 'Joe', 'Phil', 'Billy'
218, '7:00am', 'Sally', 'Susan', NULL
。彼らのほとんどは「MIN」または「MAX」を使用しています。
これはできないのでしょうか?私の他の選択肢は、今日のイベントのリストを取得し、それをループして、そのイベントのユーザーのレコードセットを見つけることです。私はそれを1つのクエリですべて取得することを好むだろう。
アイデア?
テーブルのスキーマを変更できますか?私は 'EventID Time Name1 Name2 Name3'を' Events'に保存してから、各ユーザが持つeventIDを単純に選択します。ユーザーは複数のイベントを持つことができ、eventIDは外部キーです。 – Robert
MySQLのGROUP_CONCAT()を思い出させます。この質問w.r.t. MSSQLのヘルプ? http://stackoverflow.com/questions/273238/how-to-use-group-by-to-concatenate-strings-in-mssql – Riedsio
名前をまとめて区切られた単一の列にまとめることができます。だからあなたは: EventID、時間、名前 211、 '4:00 am'、 "Joe、Phil、Billy" – Adam