次のような一連のデータを使用しています。
StudentName | AssignmentName | Grade --------------------------------------- StudentA | Assignment 1 | 100 StudentA | Assignment 2 | 80 StudentA | Total | 180 StudentB | Assignment 1 | 100 StudentB | Assignment 2 | 80 StudentB | Assignment 3 | 100 StudentB | Total | 280
割り当ての名前と数は動的です。次のような結果を得る必要があります。
Student | Assignment 1 | Assignment 2 | Assignment 3 | Total -------------------------------------------------------------------- Student A | 100 | 80 | null | 180 Student B | 100 | 80 | 100 | 280
理想的には、各割り当てに含める/関連付けることができる「期日」に基づいて列を並べ替えたいと思います。合計は、可能であれば最後にある必要があります (可能であれば、計算してクエリから削除できます)。
列に名前を付けるだけでピボットを使用して3つの割り当てを行う方法を知っています.動的な方法でそれを実行しようとしていますが、まだ良い解決策が見つかりません. 私はSQL Server 2005でこれをやろうとしています
編集
理想的には、ポリシーに反するため、動的 SQL を使用せずにこれを実装したいと考えています。それが不可能な場合は、動的 SQL を使用した実際の例が機能します。