rookie2006 Geschrieben 31. Januar 2007 Teilen Geschrieben 31. Januar 2007 Liebe BB Gemeinde, folgende Frage stellt sich mir in der Schule momentan: Tabelle A SchülerNummer | Note | Datum 10017 | 1 | 31.01.2007 10029 | 3 | 31.01.2007 ... 10017 | 3 | 15.12.2006 Nun brauch ich für die Übersicht eine Liste mit dem jeweils aktuellstem Eintrag (oder by datum desc) sortiert nach der besten note (order by note) wenn ich nun beide order by verknüpfe (order by datum desc, note) werden alle datensätze returniert. Ich brauche je schüler aber nur den aktuellsten! danke für eure hilfe! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
tschiffi Geschrieben 31. Januar 2007 Teilen Geschrieben 31. Januar 2007 Abgesehen von der sinnhaftigkeit dieses "Datenmodells" (keine fächer ? was is hier der key ? hm) stellt sich die frage: 1) Willst du einfach die aktuellste note eines schuelers oder 2) die aktuellste kombination von schueler/note ? sprich, ann hat schueler A seinen letzten 1er, wann hat A seinen letzten 2er usw ? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
rookie2006 Geschrieben 31. Januar 2007 Autor Teilen Geschrieben 31. Januar 2007 Der einfachheit halber habe ich nur die relevanten tabellenteile hier niedergeschrieben. ich brauche eine liste der aktuellsten note jedes schülers, und dieses ergebnis sortiert nach der note. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
tschiffi Geschrieben 31. Januar 2007 Teilen Geschrieben 31. Januar 2007 Auf die gachen --> Subselect, wo du dir das maxdate rausholst welches SQL ? manch einfache SQLs koennen keine Subselects ? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
maosmurf Geschrieben 31. Januar 2007 Teilen Geschrieben 31. Januar 2007 subselect: SELECT schuelernummer, max(datum) AS neu FROM my_table GROUP BY schuelernummer und dann umgebende query: SELECT * FROM my_table t1, ( .. subquery ... ) t2 WHERE t1.schuelernummer = t2.schuelernummer AND t1.datum = t2.neu ist nicht optimal beim auswerten (wg kreuzprodukt) aber am anschaulichsten EDIT: bei oracle kannst auch so machen (damits schneller geht) SELECT FROM my_table t1 JOIN ( .. subquery ... ) t2 ON (t1.schuelernummer = t2.schuelernummer AND t1.datum = t2.neu) Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
rookie2006 Geschrieben 31. Januar 2007 Autor Teilen Geschrieben 31. Januar 2007 ich habs so gelöst: SELECT * FROM TabelleA WHERE Datum >= (SELECT TOP 1 Datum FROM TabelleA A WHERE A.SchuelerNr = SchuelerNr ORDER BY A.Datum desc) ORDER BY Note asc Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
maosmurf Geschrieben 31. Januar 2007 Teilen Geschrieben 31. Januar 2007 korrelierte anfragen sind pfui Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
AB Geschrieben 31. Januar 2007 Teilen Geschrieben 31. Januar 2007 korrelierte anfragen sind pfui Zuviel DM inhaliert? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
maosmurf Geschrieben 31. Januar 2007 Teilen Geschrieben 31. Januar 2007 Zuviel DM inhaliert? nana, hab ja schon datenbanksysteme hinter mir Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
AB Geschrieben 31. Januar 2007 Teilen Geschrieben 31. Januar 2007 nana, hab ja schon datenbanksysteme hinter mir Das hat mir der neue Studienplan Gott sei Dank erspart. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
maosmurf Geschrieben 31. Januar 2007 Teilen Geschrieben 31. Januar 2007 Das hat mir der neue Studienplan Gott sei Dank erspart. bist du kein software engineer? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
AB Geschrieben 31. Januar 2007 Teilen Geschrieben 31. Januar 2007 bist du kein software engineer? njet... 532 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
maosmurf Geschrieben 31. Januar 2007 Teilen Geschrieben 31. Januar 2007 njet... 532 shame on you Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.