Max-Wert einer Abfrage

Frostie10

Grünschnabel
Hallo :)

Wie kann ich den höchsten Wert der aktuellen Abfrage ausgeben.

MIt
Code:
Where datum = (select max(datum) from tabelle1)
wird ja das höchste Datum der Tabelle1 ausgegeben. Aber ich möchte den höchsten Wert dieser Abfrage anzeigen lassen.
Also, ich habe eine normale Select-Abfrage z.B:
Code:
Select Name, Datum, Stelle from Tabelle1 where Name = 'Meyer' and ....


Diese Abfrage enthält nun mehere Datensätze mit unterschiedlichen Daten. Nun soll aus diesen Werten nur das höchste Datum angezeigt werden.

Wie stelle ich dies an?

Ich hoffe ihr könnt mir weiterhelfen...

Gruß
Frostie
 
Hi,

wenn Du keine andere Sortierung brauchst, könntest Du nach dem Datum sortieren, oder Du ermittelst den höchsten Wert halt in der Schleife, die die Datensätze ausliest.

LG
 
Select MAX(Datum) from Tabelle1 where Name = 'Meyer' and ....
GROUP BY 1

Gruppieren, danach aggregieren. Nach dem gruppieren kann man Aggregatfunktionen auf alle Spalten ausführen, man kann aber nur die Spalten selektieren die auch im GROUP BY vorkommen (in dem Fall jetzt gar keine)
 
Du hängst einfach
Code:
ORDER BY datum LIMIT 1
an`s Ende.

Dann wird nach dem Datum sortiert, aber es wird nur ein Datensatz geliefert
-> das ist dann der mit dem neustem oder ältestem Datum.
 
Hi,

@Cojote: Das funktioiert so nicht. GROUP BY 1 bedeutet ja, gruppiere nach Spalte 1 (der selektierten), das wäre MAX(Datum) und danach kann natürlich nicht gruppiert werden.

LG
 
Hi Zusammen!

also ich hab das selbe Problem wie Frosti! ich würde auch gerne nur einen Datensatz ausgeben und zwar den niedrigsten. Ich glaub ob höchster oder niedrigster Datensatz ist kein Unterschied... Also ich geh so vor:
Java:
 result = stmt.executeQuery(
"SELECT Artikel.ArtikelNr, Artikelpreis.ArtikelNr, Preis, von_Datum, bis_Datum, Artikelbezeichnung" +
"FROM Artikelpreis, Artikel" +
"WHERE Artikelpreis.ArtikelNr = Artikel.ArtikelNr" +
"AND von_Datum >= #01/01/2007#" +
"AND bis_Datum <= #31/12/2007#" +
"ORDER BY Preis DESC");

Nun ist des Problem das ich sortierte zwei Datensätze bekomme ich will jedoch nur den niedrigsten bekommen. Könnt ihr mir helfen?

MfG
Saban
 
Zuletzt bearbeitet von einem Moderator:
Könnte vielleicht irgendjemand von euch mal das verwendete DBMS mitteilen?
Nur so könnte man nämlich zielgerichtet helfen.

Ein
Code:
LIMIT 0,1
funktioniert nämlich nur in MySQL.
Unter Oracle würde man eine TopN-Analyse machen.
Und unter Informix würde man alles doppelt schreiben oder bitterlich weinen.

Helfen kann man euch hier nur, wenn ihr mal ein paar Infos gebt.
 
So wie das aussieht, gehst du ja nicht über eine "echte" Abfrage, sondern schießt das ganze über VBA rein. Das einfachste wäre da, wenn du die Sortierung in ASC umänderst und dann einfach bei der Weiterverarbeitung nur das erste ResultSet (das niedrigste) verarbeitest.
 
Zurück