マークエントリを含むテーブルがあります。ここでは、特定の学生の進捗シートを作成したいと思います。これにより、テストに従って表にマークが入力されます。
- テスト 1 には、英語、植物学などの科目のすべてのマークが含まれています。
- テスト2には被験者のマークも含まれています
そのためにunion all
、testidに基づくクエリを使用しました
select distinct
W.SubjectName, W.StudentId, W.Test1, W.Test2
from
(select distinct
SB.SubjectName, ME.StudentId, ME.Mark as Test1, 0 as Test2
from
MarkEntry ME
inner join
Subject SB on SB.SubjectId = ME.SubjectId
where
ME.TestId = 1
and ME.GradeId = 5
and ME.SectionId = 9
and ME.TermId = 1
and ME.LevelId = 1
and ME.StreamId = 2
and ME.AcYear = 14
group by
ME.Mark, ME.StudentId, SB.SubjectName
union all
select distinct
SB.SubjectName, ME.StudentId, 0 as Test1, ME.Mark as Test2
from
MarkEntry ME
inner join
Subject_DT SB on SB.SubjectId = ME.SubjectId
where
ME.TestId = 2
and ME.GradeId = 5
and ME.SectionId = 9
and ME.TermId = 1
and ME.LevelId = 1
and ME.StreamId = 2
and ME.AcYear = 14
group by
ME.Mark, ME.StudentId, SB.SubjectName) W
where
W.StudentId = 1052
group by
W.StudentId, W.Test1, W.Test2, W.SubjectName
私の結果は次のようになります。
SubjectName StudentId Test1 Test2
-------------------------------------------------
English 1052 0.0 23.0
Botany 1052 0.0 32.0
Zoology 1052 0.0 32.0
Botany 1052 10.0 0.0
English 1052 10.0 0.0
Zoology 1052 20.0 0.0
しかし、私はこのようにそれが必要です
SubjectName StudentId Test1 Test2
---------------------------------------------
English 1052 10.0 23.0
Botany 1052 10.0 32.0
Zoology 1052 20.0 32.0
誰にも提案がありますか?