Напишите запрос, чтобы отобразить имена учеников и максимальную оценку, которую они набрали по любому предмету. - PullRequest
0 голосов
/ 28 марта 2020

Я пытался использовать group by, и получение сообщения об ошибке однорядной функции не может возвращать несколько значений.

В нем есть три таблицы для выбора ученика, предмета и оценки.

enter image description here

1 Ответ

0 голосов
/ 28 марта 2020

Если вам требуются только номер Student_id и MAX, вы можете использовать только таблицы Student и Marks, как показано ниже -

SELECT A.stident_id,MAX(B.Value) max_marks
FROM Student A
INNER JOIN Mark B ON A.Student_id = B.Student_id
GROUP BY A.stident_id

Но если вам также нужно имя субъекта, вы можете попробовать это ниже logi c -

SELECT AA.stident_id,AA.stident_name,
D.Subject_name,AA.max_marks
FROM
(
    SELECT A.stident_id,A.stident_name,MAX(B.Value) max_marks
    FROM Student A
    INNER JOIN Mark B ON A.Student_id = B.Student_id
    GROUP BY A.stident_id
)AA 
INNER JOIN Marks C ON AA.stident_id = C.stident_id 
AND AA.max_marks = C.Value
INNER JOIN Subject D ON C.subject_id = D.subject_id
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...