根据同一个表中的条件,将结果从多行组合成一行

时间:2011-11-18 21:40:51

标签: sql sql-server sql-server-2008 tsql

我有一张包含学生成绩(SAG)的表格。我需要根据NULL''显示一行中不是IDResultGroup的所有成绩,并根据{{显示来自另一行的所有其他成绩1}}和ID在同一张表中。

ResultGroup

我正在尝试解决的问题是如何从ResultGroup TABLE - SAG ID RESULTGROUP GRADE ----------------------------- 102 AC C 102 ACPJ B 124 AC A 124 ACPJ 242 AC B 242 ACPJ 101 AC D 101 ACPJ C 获取结果,如果有ACPJAC,则只从ResultGroup NULL获取结果''的等级。

结果?有点像...

ID

1 个答案:

答案 0 :(得分:0)

SELECT acpj.ID
   , CASE
        WHEN acpj.Grade IS NULL OR acpj.Grade = '' THEN ac.Grade
        ELSE acpj.Grade
     END AS FinalGrade
FROM SAG AS acpj
INNER JOIN SAG AS ac ON acpj.ID = ac.ID
WHERE acpj.ResultGroup = 'ACPJ'
   AND ac.ResultGroup = 'AC'