Teilmenge mit SQL abfragen

Hi!

Ich brauche mal die Hilfe eines SQL-Könners!

Ich muß aus einer Tabelle den Maximalwert eines Feldes abfragen. Das ist kein Problem.

Zu dem Maximalwert existieren jetzt aber mehrere Sätze. Aus diesen Sätzen ist jetzt aus einem zweiten Feld der Maximalwert zu ermitteln.

Bsp:
Die Tabelle hat folgende Struktur:

KdNr Datum Menge Umsatz

Nun möchte ich wissen, wann welcher Kunde zuletzt eingekauft hat (also Max(Datum) mit group by auf KdNr). Da ein Kunde mehrfach pro Tag eingekauft haben könnte, will ich den höchsten Umsatz seines letzten Einkaufstages sehen.

Wie sieht die passende Query dazu aus?
Ich probiere schon zwei Stunden alles mögliche aus, komme aber auf keinen grünen Zweig.

Danke für jeden Tip!

Heinrich

Probier mal:

SELECT kdnr, MAX( umsatz ) 
 FROM tabelle t, ( SELECT kdnr, MAX( datum ) AS datum FROM tabelle GROUP BY kdnr ) s
 WHERE t.kdnr = s.kdnr AND t.datum = s.datum
 GROUP BY kdnr

Du selektierst zuerst für jeden Kunden das maximale Datum und sammelst dann über einen Join alle Datensätze mit diesem Datum heraus. Darauf machst du dann wieder GROUP BY und berechnest damit den maximalen Umsatz.

Das bedingt, dass im Datumsfeld nur das Datum und keine Uhrzeit gespeichert ist. Falls die auch, dann müßtest du über eine Funktion auf beiden Seiten nur das Datum extrahieren und vergleichen.

Grüße, Robert

Danke! o.T.
.