2013-03-14 105 views
2

我有一個Access數據庫,其中包含一個Grads表:如何選擇具有最大價值

Grads 
- studentId 
- courseId 
- tryNumber 
- semesterId 
- finalGrad 

如何獲得所有的信息(studentName, courseName, courseId, finalGrade)從最大tryNumber(最後一次嘗試)行?

+1

樣本數據,請 – Dhinakar 2013-03-14 10:51:18

回答

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

不,我需要所有finalgrade – 2013-03-14 11:05:55

+2

@MaathProgrammer你可以發佈一些樣本數據,然後期望的結果? – Taryn 2013-03-14 11:06:27

+0

謝謝我會修改你的查詢與我一起工作 你的查詢是真的再次感謝 – 2013-03-14 11:09:42

0

這應該爲你工作:

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

不能GROUP BY finalGrade,我需要finalGrade馬克斯tryNumber – 2013-03-14 11:01:04

+0

在您需要最大最終成績? – 2013-03-14 11:01:58

-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

這將返回一行,最大嘗試數 – 2013-03-14 11:03:33

+0

請詳細說明您的要求。你需要每個學生這個嗎? – 2013-03-14 11:05:49