maximale Version auslesen

rogo

Grünschnabel
Hallo,
ich habe folgendes Problem bei dem ich nicht mehr weiterkomme .:-(

Ich habe eine Tabelle mit drei Spalten
arbeitspaket - version - name

Ich möchte nun eine Abfrage erstellen, welche mir alle arbeitspakete und deren Namen für die jeweils höchste Version des Arbeitspaketes erstellen.

Zum Beispiel enthält die Tabelle folgende Einträge

arbeitspaket / version / name

1.1 / 1 / name1
1.2 / 1 / name2
1.2 / 2 / name3
1.3 / 1 / name4

Das Ergebnis solte dann wie folgt aussehen

arbeitspaket / version / name

1.1 / 1 / name1
1.2 / 2 / name3
1.3 / 1 / name4

Habe bisher nur herausgefunden, wie ich die aktuelle Version des Arbeitspaketes bekomme.

Select max(version), arbeitspaket
from tabelle
groupby arbeitspaket

Aber ich brauche auch noch den Namen.

Bin um jede Idee dankbar.

Bitte helfen. Danke

Grüße
Mirco
 
mySQL ?
Dann:
PHP:
Select version, arbeitspaket, name
from tabelle
groupby arbeitspaket
ORDER BY version DESC LIMIT 1
 
Danke erstmal für die superschnelle Antwort.

Nein, Sql-Server

Sql-Server kennt glaube ich kein Limit Befehl.
Ausserdem müssen doch auch die Spalten, die projeziert werden, in der groupby-Klausel vorkommen, oder irre ich mich da ?

Hast du vielleicht noch einen anderen Vorschlag ?


Grüsse
Mirco
 
Ich denke so sollte es gehen:

SELECT arbeitspaket, version, name
FROM tabelle
WHERE version = (select max(version) from tabelle)
ORDER BY version

oder so

SELECT *
FROM tabelle
WHERE version = (select max(version) from tabelle)
ORDER BY version

dann sparst du ca. 26 Bytes auf deiner Festplatte :p haha früher war das viel ;)

mfg Psicopatico
 
[Hi ! Erstmal danke für den Lösungsversuch.
Deine Version liest aber leider nur die insgesamt höchste version aus und nicht für jeden namen die höchste version.
Warum hatdenn Select * weniger Speicherplatzbedarf als das erstere ?

Habe mittlerweile eine Lösung gefunden

Falls es dich interessiert

Select name,max versionmax, arbeitspaket from version v1 inner join (Select name,max(version) as maxversion group by name) v2 on v1.name = v2.name and v1.version = v2.maxversion


Aber nochmals danke
 
Zurück