テーブル データをより視覚的に魅力的な出力形式に操作する方法を理解しようとしています。私が望むものは別のレポートソフトウェアを対象としている可能性があるため、これは問題の一部である可能性があります。
私はこのようなテーブルを持っています
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が、集計を選択する必要があるため、次のようにMaxorMin学生しか取得できません。
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
以下を仮定します。
- 教師の数とその名前は不明です(可変)
- 教師ごとの生徒数は不明であり、教師ごとに異なる可能性があります
これを行う方法はありますか?