我正在处理一组如下所示的数据。
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
现在理想情况下,我想根据可以包含/关联到每个作业的“到期日期”对列进行排序。如果可能,总数应该放在最后(如果可能,可以计算并从查询中删除。)
我知道如何使用 pivot 简单地命名列来完成 3 个作业,它试图以我还没有找到好的解决方案的动态方式来做。我正在尝试在 SQL Server 2005 上执行此操作
编辑
理想情况下,我想在不使用动态 SQL 的情况下实现这一点,因为这违反了政策。如果不可能……那么使用动态 SQL 的工作示例将起作用。