Zum Inhalt springen

Wieder mal - SQL Problem


 Teilen

Empfohlene Beiträge

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!

Link zu diesem Kommentar
Auf anderen Seiten teilen

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 ?

Link zu diesem Kommentar
Auf anderen Seiten teilen

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)

 

:)

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

 Teilen

×
×
  • Neu erstellen...