SQL ¿Muestra el logging más reciente en GROUP BY?

Tengo una table que se ve así:

id | SubjectCode | Grade | DateApproved | StudentId 1 SUB123 1.25 1/4/2012 2012-12345 2 SUB123 2.00 1/5/2012 2012-12345 3 SUB123 3.00 1/5/2012 2012-98765 

Estoy intentando agrupar por SubjectCode, pero me gustaría que muestre la date de aprobación más reciente para que se vea así:

  id | SubjectCode | Grade | DateApproved | StudentId 2 SUB123 2.00 1/5/2012 2012-12345 3 SUB123 3.00 1/5/2012 2012-98765 

Estoy un poco perdido en cómo hacerlo?

EDITAR:

Bien chicos ahora estoy en mi PC de verdad, disculpen la pregunta mal formulada.

Esto es lo que estoy tratando de hacer:

 SELECT GD.GradebookDetailId, G.SubjectCode, G.Description, G.UnitsAcademic, G.UnitsNonAcademic, GD.Grade, GD.Remarks, G.FacultyName, STR_TO_DATE(G.DateApproved, '%m/%d/%Y %h:%i:%s') AS 'DateAproved' FROM gradebookdetail GD INNER JOIN gradebook G ON GD.GradebookId=G.GradebookId WHERE G.DateApproved IS NOT NULL AND G.GradebookType='final' AND StudentIdNumber='2012-12345' GROUP BY <?????> ORDER BY G.SubjectCode ASC 

Básicamente, solo quiero mostrar la "Fecha de aprobación" más reciente de un "SubjectCode", por lo que no obtengo inputs múltiples.

Comience con esto:

 select StudentId, max(DateApproved) from tbl group by StudentId 

A continuación, integre eso con la consulta principal:

 select * from tbl where (StudentId, DateApproved) in ( select StudentId, max(DateApproved) from tbl group by StudentId ) 

También puedes usar esto:

 select * from tbl join (select StudentId, max(DateApproved) as DateApproved from tbl group by StudentId) using (StudentId, DateApproved) 

Pero prefiero las testings de tupla, es mucho más orderado

Prueba en vivo: http://www.sqlfiddle.com/#!2/771b8/5

 SELECT t2.* FROM temp t2 INNER JOIN( SELECT MAX(DateApproved) as MaxDate, StudentId FROM temp GROUP BY StudentId ) t1 ON t1.MaxDate = t2.DateApproved and t1.StudentId = t2.StudentId 
 SELECT * FROM TheTable a WHERE NOT EXISTS(SELECT * FROM TheTable b WHERE b.StudentCode = a.StudentCode AND b.DateApproved > a.DateApproved)