【发布时间】:2020-04-25 10:06:05
【问题描述】:
我有 3 个表格,如下所示
我编写了一个 SQL 脚本来返回特定学期和班级中所有学生科目的分数,无论分数是否被记录。但是下面的脚本只返回每个科目的记录分数。
select
a.StudentId, b.SubjectId, c.Score as tCA, d.Score as tExam
from
tbl_StudentToClass a
join
tbl_SubjectToClass b on a.ClassId = b.ClassId
join
(select
sum(Score) AS Score, SubjectId, StudentId, TermId
from
tbl_Score
where
ScoreType = 1
group by
SubjectId, StudentId, TermId) c on b.SubjectId = c.SubjectId
join
(select
sum(Score) AS Score, SubjectId, StudentId, TermId
from
tbl_Score
where
ScoreType = 2
group by
SubjectId, StudentId, TermId) d on b.SubjectId = d.SubjectId
where
a.ClassId = 2 and
a.SchoolSessionId = 5 and
c.StudentId = a.StudentId and
c.TermId = 8 and
d.StudentId = a.StudentId and
d.TermId = 8
如何返回所选班级的所有科目,无论是否有分数?
样本数据:
【问题讨论】:
-
编辑问题添加一些示例数据和所需的结果会有所帮助。
-
@YogeshSharma 我已经做到了
-
我迷路了。选择的班级是什么?什么是“学生科目”?显示你想要的结果(也许是简化的)真的很有帮助。
标签: sql sql-server join