テーブル データをより視覚的に魅力的な出力形式に操作する方法を理解しようとしています。私が望むものは別のレポートソフトウェアを対象としている可能性があるため、これは問題の一部である可能性があります。
私はこのようなテーブルを持っています
teacher student
----------------------
teacher1 Bob
teacher1 Jim
teacher2 Sam
teacher3 Bill
teacher3 John
teacher3 Eric
次のようなテーブルが必要です。
teacher1 teacher2 teacher3
---------------------------------
Bob Sam Bill
Jim null John
null null Eric
そこで、すべての教師の名前を変数に詰め込んでから a を使用しようとしましたPivot
が、集計を選択する必要があるため、次のようにMax
orMin
学生しか取得できません。
DECLARE @teacherList AS VARCHAR(max)
SELECT @teacherList = Stuff((SELECT DISTINCT',[' + teacher + ']'
FROM myTable
FOR xml path('')), 1, 1, '')
DECLARE @dynamic_pivot_query AS VARCHAR(max)
SET @dynamic_pivot_query = 'select' + @teacherList +
'from
(
SELECT [teacher],[student]
FROM [dbo].[myTable]
) as S
Pivot
(
MIN([student])
FOR teacher IN (' + @teacherList + ')
) as P
'
EXEC(@dynamic_pivot_query)
この結果は次のとおりです。
teacher1 teacher2 teacher3
---------------------------------
Bob Sam Bill
以下を仮定します。
- 教師の数とその名前は不明です(可変)
- 教師ごとの生徒数は不明であり、教師ごとに異なる可能性があります
これを行う方法はありますか?