Auswählen der MAX(id)
andi
- datenbank
Hallo,
Kämpfe momentan mit folgendem Problem:
Ich habe eine db_table die folgendermaßen aussieht:
id text abteilung
1 bla X
2 bla X
3 bla Y
4 bla Y
5 bla Z
6 bla Z
7 bla X
Ich möchte nun mit einem SELECT die höchste id jeder Abteilung auslesen und den Text anzeigen.
In diesem Fall wäre es bei der Abteilung X die id 7, bei der Abteilung Y die id 4 und bei der Abteilung Z die id 6.
Kann mir mal jemand auf die Sprünge helfen. Hab schon probiert mit Max(id) und group by usw. aber noch keine funktionierende Lösung gefunden.
Danke im vorhinein.
Andi
hi,
Ich möchte nun mit einem SELECT die höchste id jeder Abteilung auslesen und den Text anzeigen.
In diesem Fall wäre es bei der Abteilung X die id 7, bei der Abteilung Y die id 4 und bei der Abteilung Z die id 6.
Kann mir mal jemand auf die Sprünge helfen. Hab schon probiert mit Max(id) und group by usw. aber noch keine funktionierende Lösung gefunden.
wie sieht's aus mit gruppierung nach abteilung und ORDER BY id DESC?
gruss,
wahsaga
Hi,
Ich möchte nun mit einem SELECT die höchste id jeder Abteilung auslesen und den Text anzeigen.
Du suchst den Datensatz, für den gilt, dass die ID gleich der für die Abteilung gültigen maximalen ID ist. Ein direkter Vergleich ist nicht möglich, weil die MAX(id) nur innerhalb einer (auch impliziten) Gruppierung existiert, also brauchst Du einen Subselect. Ich empfehle die Verbindung mit dem IN-Operator:
WHERE id IN (SELECT MAX(id) FROM db_table GROUP BY abteilung)
Ob Dein DBMS dies kann vermagst nur Du zu beurteilen, weil außer Dir niemand weiß, welches DBMS Du verwendest.
Cheatah