2016-04-16 8 views
2

チーム内のプレーヤーを返すSQLビューを作成しようとしています。このような結果を返す限り私は得た。SQL Group次に、値を新しいレコードに入れます。

Team  | Person 
-------------------- 
Red Team | Jack 
Red Team | Jill 
Red Team | Harry 
Blue Team | Bob 
Blue Team | Benny 
Blue Team | Brian 

チームでグループ化し、そのチームの各メンバーを選択して自分の列に配置するにはどうすればよいですか?したがって、望ましい結果は次のようなものになります。

Team  | Person | Person | Person | 
--------------------------------------- 
Red Team | Jack  Jill  Harry 
Blue Team | Bob  Benny Brian 

ありがとうございました。

+0

? –

+0

SQL Server 2012 –

+0

ルックアップピボットとアンピボット – Paparazzi

答えて

2

は私がrow_number()機能を使用して、case文でそれらを使用している、一人一人を識別するために、この

を試してみてください。

declare @tab table 
(
    team varchar(50), 
    Person varchar(50) 
) 

Insert into @tab 
    values ('Red Team', 'Jack'), 
      ('Red Team', 'Jill'), 
      ('Red Team', 'Harry'), 
      ('Blue Team', 'Bob'), 
      ('Blue Team', 'Banny'), 
      ('Blue Team', 'Brian') 

SELECT 
    Team, 
    MAX(case when PersonKey = 1 then Person end) Person, 
    MAX(case when PersonKey = 2 then Person end) Person, 
    MAX(case when PersonKey = 3 then Person end) Person 
From 
(
     Select Team, 
     Person, 
     ROW_NUMBER() Over (Partition By team Order By Person) as PersonKey 
     From @tab 
) t 
Group By Team 

結果、使用しているDBMS

Team  Person Person Person 
---------------------------------- 
Blue Team Banny Bob  Brian 
Red Team Harry Jack Jill 
+0

ありがとうございます。今試してみてください –

+1

あなたは伝説ですが、これは魅力的です。どうもありがとうございます! –

+1

@BadDub:喜んで.... ....-) –

関連する問題