SQL Afficher l'enregistrement le plus récent dans GROUP BY?
J'ai une table qui ressemble à ceci:
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
Je suis en train de GROUPE PAR SubjectCode mais j'aimerais qu'il affiche la plus récente DateApproved de sorte qu'il ressemble:
id | SubjectCode | Grade | DateApproved | StudentId
2 SUB123 2.00 1/5/2012 2012-12345
3 SUB123 3.00 1/5/2012 2012-98765
Je suis un peu perdu sur la façon de le faire?
EDIT:
Ok les gars, maintenant je suis sur mon PC, désolé pour le mal construites question.
Voici ce que je suis en train d'essayer de faire:
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
En gros, je ne veux afficher le plus récente "DateApprove", d'un "SubjectCode", donc je ne les entrées multiples.
source d'informationauteur A.B. User
Vous devez vous connecter pour publier un commentaire.
Ceci pour commencer:
Puis l'intégrer à la requête principale:
Vous pouvez également utiliser cette:
Mais je préfère le n-uplet des tests, c'est la façon plus lisible
Test en direct: http://www.sqlfiddle.com/#!2/771b8/5