verwendetes Datenbanksystem: Ms SQl
Hallo leutz,
ich suche schon einer weile nach einer lösung für folgendes Problem:
Wie kann ich den Datensatz in einer Tabelle finden , welchenr in einem bestimmten feld den
höchsten Wert hat und diesen dann selektieren?
Danke schon mal im vorraus
lg Jo0oker
Nicht ganz, mit MAX bekommst du nur den maximalen Wert einer Spalte
z.B. SELECT MAX(ID) FROM MyTable
wenn du jetzt aber den Eintrag aus der Tabelle MyTable
holen möchtest benötigst du einen Subselect:
z.B. SELECT Id, Type FROM MyTable
WHERE Id = (SELECT MAX(ID) FROM MyTable)
Hallo, ein Subselect ist nicht erforderlich.
Select id, type from MyTable order by id desc
:::
Text auf einem Button im Computer Museum Boston, USA
Im Falle von Jo0oker ist es allerdings erforderlich, denn
...welcher in einem bestimmten feld den höchsten Wert...
Im Falle einer ID, die dann ein Autoincrement wäre, wäre deine Lösung allerdings richtig.
"Jedes Ding hat drei Seiten, eine positive, eine negative und eine komische." (Karl Valentin)
Das hat imho mit Autoincrement nichts zu tun.
Das Statement funktioniert bei Datentypen wie Datum, Uhrzeit, Integer, Decimal usw.
:::
Text auf einem Button im Computer Museum Boston, USA
Das hat imho mit Autoincrement nichts zu tun.
Du meinst aber wahrscheinlich (statt "order by id"):
Select First 1 id, type from MyTable order by type desc
... sortiert nach dem betreffenden Feld, und nur den ersten Datensatz holen (vielleicht heißt es auch TOP 1 o.ä.).
Jürgen
Das stimmt dann aber nicht mehr mit dem Beispiel von jnetrick überein! Auf das hatte ich mich sowohl in den Feldern als auch im Ergebnis bezogen. Dein Ergebnis liefert einen völlig anderen Datensatz.
Wenn ich weiß, dass ich nur einen Datensatz benötige, lese ich auch nur den ersten, ist doch klar. Natürlich kann ich das von vornherein begrenzen. Ich habe es so simpel wie möglich geschrieben.
:::
Text auf einem Button im Computer Museum Boston, USA
Dank, ihr habt mir sehr geholfen.
Lösung:
SET @colum = (SELECT MAX(colum) FROM fahrerTable);
lg Jo0oker