Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hallo,

ich habe z.B. folgende Tabelle

Feld1 | Feld2 | VERSION |

--------------------------

d1 | aaa | 1 |

d1 | aaa | 2 |

d2 | bbb | 1 |

Jetzt möchte ich eine Abfrage machen, die mir jeweils den Datensatz mit der höchten Version zurückgibt

Bei d1 wäre das also der Datensatz mit der Version 2 und bei d2 mit Version 1

Die AAbfrage würde mir also in diesem Beispiel 2 Datensätze zurückgeben

Wie mach ich das?

Geschrieben (bearbeitet)

aggregatfunktionen kannst du in der WHERE klausel nicht direkt verwenden.

Dazu benötigst du ein subselect.

versuch mal: SELECT feld2 FROM tabelle WHERE version=(SELECT MAX(version) from tabelle WHERE feld1=d1) AND feld1=d1;

Bearbeitet von 0815FIA
Geschrieben (bearbeitet)
ups, glatt die softquotes vergessen -.-, sry

SELECT feld2 FROM tabelle WHERE version=(SELECT MAX(version) FROM tabelle WHERE feld1="d1") AND feld1="d1";

Da bekommst du ja nur die höchste Version von d1.

Für d2, d3 etc müsste jedesmal ne neue Abfrage geschrieben werden.

Ich würde es so lösen:

SELECT Feld1, MAX(Version) FROM tabelle GROUP BY(Feld1)

Bearbeitet von Astra-Ben
Geschrieben (bearbeitet)
Ich würde es so lösen:

SELECT Feld1, MAX(Version) FROM tabelle GROUP BY(Feld1)

hast recht, weitaus sinniger :)

bis auf das vielleicht feld2 selected werden sollte.

Bearbeitet von 0815FIA
Geschrieben

so, ich hab mich gestern abend nochmal kurz mit diesem thema beschäftigt, und unsere beiden "Lösungen" waren leider schwachsinn. man braucht hier einen korrelierten subselect. die richtige lösung lautet:

SELECT * FROM tabelle AS t1 WHERE version=(SELECT MAX(version) FROM tabelle AS t2 WHERE t1.feld1=t2.feld1);

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...