我有一个问题,我需要将学生的学科名称(例如英语、科学……)显示为列,并在每个学科下显示其各自的分数。我查询数据库并将这些值作为数据集中的行而不是列。我应该如何查询数据库?
我的查询结果
student name | marks | Subectname
------------------------------------
raghuram 78 english
raghuram 34 physics
raghuram 76 chemistry
................ ... ..........
报告中要求的结果
studentname | english | Maths | physics | ......
----------------------------------------------------
raghuram 78 66 32
这是我的查询
SELECT
st.FirstName + ' ' + st.LastName as StudentName,
s.Subject_Name, se.Mark
FROM
dbo.FEE_STUDENT_EXAM se
INNER JOIN
dbo.FEE_STUDENT_GRADE sg ON sg.Student_ID=se.Student_ID
INNER JOIN
FEE_STUDENT st ON st.Student_ID=sg.Student_ID
INNER JOIN
dbo.EMP_SUBJECT s ON s.SubjectID=se.Subject_ID
WHERE
sg.Grade_ID = @GradeId
AND sg.Division_ID = @DivId
AND se.Subject_ID IN (SELECT d.SubjectId
FROM dbo.FEE_STUDENT_EXAM_SCHEDULED d
INNER JOIN dbo.FEE_STUDENT_EXAM_SCHEDULEH h ON h.ExamScheduleID = d.ExamScheduleID
WHERE h.Grade_Id = @GradeId AND h.Division_ID = @DivId
AND YEAR(CAST(d.TestDate AS DATETIME)) = @Year
AND MONTH(CAST(d.TestDate AS DATETIME)) = @Month)