2012-05-06 47 views
1

我有类似的问题,发布在链接SQL - columns for different categories。我有学生名单,学生名称,中期成绩和最终成绩,如下面的GradeTable所示。使用group by by对数据进行分类

StName MidTermGrade FinalGrade 
St1   1    1 
St2   2    1 
St3   2    3 
St4   1    3 
St5   1    1 
St6   2    3 
St7   2    2 
St8   1    1 
St9   2    2 
St10  2    3 
St11  3    1 
St12  2    1 
St13  3    3 
St14  3    2 
St15  1    2 

该数据需要使用SQL查询来生成输出,使所有的分级和学生姓名落在一个查询输出,我可以在Word/Excel中粘贴,并提供它作为报告进行分类。

FinalGrade MidTermGrade1 MidTermGrade2 MidTermGrade3 
    1  St1    St2    St11 
    1  St5    St12  
    1  St8  
    2  St15   St7    St14 
    2      St9 
    3  St4    St3    St13 
    3  St6 
    3      St10  

请帮助和建议,如果这可以实现。

+1

你在使用什么样的数据库? MySQL,MSSQL ..? – barsju

+0

我不明白。该专栏表示midtermgrade1,但它似乎包含一个学生姓名。你能更好地描述你想要的吗? –

+0

该数据库是MS SQL。 – Raghu

回答

0

不要以为很容易/可能得到你所需要的,但也许这是不够好:

select FinalGrade, MidtermGrade, group_concat(StName) from GradeTable group by FinalGrade, MidtermGrade; 

然后你就可以轻松地完成剩下的代码..?