2013-03-14 4 views
2

У меня есть база данных Access которая содержит Grads таблицу:Как выбрать с максимальным значением

Grads 
- studentId 
- courseId 
- tryNumber 
- semesterId 
- finalGrad 

Как получить всю информацию (studentName, courseName, courseId, finalGrade) от линий с максимальной tryNumber (последняя попыткой)?

+1

Выборочные данные, пожалуйста, – Dhinakar

ответ

4

Если вы хотите только одну строку с max trynumber, то вы должны иметь возможность использовать:

select g.studentid, 
    g.courseid, 
    g.trynumber, 
    g.semesterid, 
    g.finalgrade 
from grads g 
inner join 
(
    select max(tryNumber) MaxTry 
    from grads 
) m 
    on g.trynumber = m.maxtry 

Если вы хотите возвратить каждому студенту с max(tryNumber), то вы можете использовать:

select g.studentid, 
    g.courseid, 
    g.trynumber, 
    g.semesterid, 
    g.finalgrad 
from grads g 
inner join 
(
    select studentid, max(tryNumber) MaxTry 
    from grads 
    group by studentid 
) m 
    on g.trynumber = m.maxtry 
    and g.studentid = m.studentid 
+0

Нет, мне нужно все итоговое задание –

+2

@MaathProgrammer Можете ли вы разместить некоторые данные образца, а затем желаемый результат? – Taryn

+0

Thanks Я изменю ваш запрос, чтобы работать со мной Ваш запрос верный Еще раз спасибо –

0

Это должно работать для вас:

SELECT studentName, 
     courseName, couseId, 
     finalGrade, MAX(tryNumber) 
FROM grads 
GROUP BY studentName, courseName, couseId, finalGrade 
+0

не GROUP BY finalGrade, мне нужно finalGrade с Максом tryNumber –

+0

как в вам нужно макс окончательного класса? –

-1

select top 1 * from Grads order by tryNumber desc

0

Вы можете использовать:

Select studentName, courseName, courseId, finalGrade From Grads 
Where tryNumber=(Select MAX(tryNumber) From Grads) 
+0

Это вернет один ряд с максимальным количеством попыток –

+0

Просьба уточнить вам требование. Вам это нужно на одного учащегося? –

Смежные вопросы