17 Stimmen

Wie kann ich eine SQL-Abfrage für die letzte Transaktion eines jeden Kontos erstellen?

Angenommen, ich habe eine Tabelle "Transaktionen" mit den Spalten "acct_id", "trans_date" und "trans_type", und ich möchte diese Tabelle so filtern, dass ich nur die letzte Transaktion für jedes Konto habe. Natürlich könnte ich etwas tun wie

SELECT acct_id, max(trans_date) as trans_date  
FROM transactions GROUP BY acct_id;

aber dann verliere ich meinen trans_type. Ich könnte dann einen zweiten SQL-Aufruf mit meiner Liste von Daten und Konto-IDs machen und meine trans_type zurückbekommen, aber das fühlt sich sehr schwerfällig an, da es entweder bedeutet, dass Daten hin und her an den SQL-Server gesendet werden, oder es bedeutet, dass eine temporäre Tabelle erstellt wird.

Gibt es eine Möglichkeit, dies mit einer einzigen Abfrage zu tun, hoffentlich eine generische Methode, die mit mysql, postgres, sql-server und Oracle funktionieren würde.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X