MAX id pro User

blueangel1610

Neuer Benutzer
Beiträge
3
Einen wunderschönen guten Abend :)

Das ist mein erster Beitrag in diesem Forum. Ich hoffe an dieser Stelle mit meinem etwas speziellen Wunsch richtig zu sein, und hoffe auf einen kleinen Denkanstoß.

Ich habe eine Übersicht über Abmeldungen von Usern aus einer Datenbank. Mein Ziel ist es nun die NIcks zu gruppieren und jeweils nur die mit der ihr zugeteilten MAX(id) angezeigt werden, sodass die Liste übersichtlicher wird.
Das hat den Hintergrund das ich damit nur noch die letzte Abmeldung des betreffenden Nicks sehe.

Meine bisherigen Versuche scheiterten. Dabei habe ich über die Spalte NICKS gruppiert, daber allerdings wie erwartet nur jeweils die erste ID zum jeweiligen Nick erhalten. Ich denke an dieser Stelle könnte ein Subselect zum Einsatz kommen, allerdings weiß ich nicht genau wie ich diesen formulieren soll.

Ich hoffe das Anhängen des passenden Screenshots an diesen Beitrag hat geklappt, damit man sich das Problem besser vorstellen kann.


Lieben Gruß,
Chris
 

Anhänge

  • 23-05-2012 19-20-00.jpg
    23-05-2012 19-20-00.jpg
    166,9 KB · Aufrufe: 3
Werbung:

PLSQL_SQL

Datenbank-Guru
Beiträge
176
Hy,

ich nehme jetzt mal an, dass deine Tabelle den Namen "LOG" hat.


Code:
Select Nick, id, von, bis, tage, status
    from LOG a
 
    where a.id = ( select max(b.id) from LOG b where b.Nick = a.Nick ) --liefert die GRÖSSTE ID

Sollte damit funktionieren.
Meiner MEinung nach solltest du (um den letzten Eintrag je Nick zu erhalten) eher das Datum "BIS" heranziehen, da bei der ID die GRÖSSTE nicht immer der letzte Eintrag sein muss! (IMPORT oder so sachen)

Lg
 

blueangel1610

Neuer Benutzer
Beiträge
3
Vielen Dank für deine Antwort.
Die Struktur der Tabelle entspricht aber der Logik das die höchste ID von einem nick der letzte Eintrag ist.

Leider brauche ich nicht die allgemein höchste ID in der Tabelle sondern die höchste ID je Nick.
Daran scheitere ich leider bisher.

Lieben Gruß,
Chris
 
Werbung:

blueangel1610

Neuer Benutzer
Beiträge
3
Für die Nachwelt:

Code:
SELECT DISTINCT a.*, DATE_FORMAT(a.von, '%d.%m.%Y') AS von_formatiert, DATE_FORMAT(a.bis, '%d.%m.%Y') AS bis_formatiert, TIMESTAMPDIFF(DAY, a.von, a.bis) AS differenz
FROM abmeldung a AUTO JOIN abmeldung b ON (a.nick=b.nick)
WHERE a.id>= (SELECT MAX(b.id) FROM abmeldung b WHERE a.nick=b.nick)
 
Oben