Следующий запрос SQL извлекает и повторяет данные самой верхней строки для всех остальных строк.
SELECT
Student.StuRollNo, Student.StuName, Student.StuFName,
(SELECT TOP 1 M.SubjectObtMarks
FROM Marking M
WHERE M.SubjectID = 'SubUrdu'
AND M.ExamID = 1) AS Urdu,
(SELECT TOP 1 M.SubjectObtMarks
FROM Marking M
WHERE M.SubjectID = 'SubEng'
AND M.ExamID = 1) AS Eng,
(SELECT TOP 1 M.SubjectObtMarks
FROM Marking M
WHERE M.SubjectID = 'SubPhy'
AND M.ExamID = 1) AS Phy,
(SELECT TOP 1 M.SubjectObtMarks
FROM Marking M
WHERE M.SubjectID = 'SubChem'
AND M.ExamID = 1) AS Chem,
(SELECT TOP 1 M.SubjectObtMarks
FROM Marking M
WHERE M.SubjectID = 'SubBio'
AND M.ExamID = 1) AS Bio,
(SELECT TOP 1 M.SubjectObtMarks
FROM Marking M
WHERE M.SubjectID = 'SubIsl'
AND M.ExamID = 1) AS Isl,
(SELECT TOP 1 SUM(Marking.SubjectObtMarks)
FROM Marking
WHERE ExamID = 1) AS ObtMarks
FROM
Exam, Student
INNER JOIN
PrimaryData ON Student.StuRollNo = PrimaryData.StuID
INNER JOIN
Section ON Section.SectionID = PrimaryData.SectionID
WHERE
Section.SectionName = 'M1'
AND Exam.ExamID = 1;
Вот что он получает:
Диаграмма базы данных:
Пожалуйста, помогите мне решить эту проблему.Спасибо!