Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 根据同一表中的条件,将多行中的结果合并到一行中_Sql_Sql Server_Sql Server 2008_Tsql - Fatal编程技术网

Sql 根据同一表中的条件,将多行中的结果合并到一行中

Sql 根据同一表中的条件,将多行中的结果合并到一行中,sql,sql-server,sql-server-2008,tsql,Sql,Sql Server,Sql Server 2008,Tsql,我有一张包含学生成绩(SAG)的表格。我需要根据ID和ResultGroup显示一行中所有非NULL或'的成绩,并根据ID和ResultGroup在同一表格中显示另一行中所有其他成绩 TABLE - SAG ID RESULTGROUP GRADE ----------------------------- 102 AC C 102 ACPJ B 124 AC A 124 ACPJ

我有一张包含学生成绩(SAG)的表格。我需要根据
ID
ResultGroup
显示一行中所有非
NULL
'
的成绩,并根据
ID
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
我试图解决的是如何从ResultGroup
ACPJ
中获得结果,如果该
ID
的等级中存在
NULL
'
,则仅从ResultGroup
AC
中获得结果

最终结果?类似于

SAG_COMBINED

ID     FinalGrade
-----------------
102    B
124    A
242    B
101    C

虽然这更为紧凑,但只有当涉及的每个
ID
的每个
RESULTGROUP
都有一行时,
JOIN
才有效,这在问题中没有指定。您是正确的。当ResultGroup的分数可能为空时,我做了这个假设,尽管这是一个很好的观点。谢谢,谢谢亚当,测试过了,一切都好。被投入到这项工作中,我才刚刚开始游泳!
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'