Hallo,
Nun habe ich ihm mal diesen Query geschickt:
SELECT MAX(UESatz) AS "max UESatz", Name FROM t_dozent GROUP BY NULL;
und es funktioniert.
Und ist sowas von "falsch" ... Begründungen dazu findest du hier im Archiv zuhauf. Die Stichworte zum Suchen hast du ja bereits.
ich habe eine Datenbank mit verschiedenen Tabellen. Dort soll ich das Maximum »» der Spalte "UESatz" herausfinden. Das habe ich mit:
SELECT Name, MAX(UESatz) AS "max UESatz" FROM t_dozent;
erreicht.
Übersetzt man deine umgangssprachliche Abfrage "Dort soll ich das Maximum »» der Spalte "UESatz" herausfinden." richtig nach SQL (ANSI Standard SQL) würde sie lauten
SELECT MAX(UESatz) FROM t_dozent
nach mehr hast du nicht gefragt.
Übersetzt man deine SQL Abfrage "falsch" ins umgangssprachliche
"Für den maximalen Wert für die Spalte "UESatz" und dazu den Wert aus der Spalte "Namen" welcher zum selben Datensatz gehört."
Die/Eine richtige Übersetzung davon nach SQL wäre:
SELECT Name, UESatz
FROM t_dozent
WHERE UESatz = (SELECT MAX(UESatz) FROM t_dozent)
Deine Variante bringt mindestens dann Probleme wenn es zwei Einträge mit dem maximalen UESatz in der Tabelle gibt, für Erna und Heinz. Welchen der beiden Namen soll es denn dann anzeigen und warum?
Das, was du treibst, wird eigentlich nur von MySql erlaubt. Jedes andere RDBMS würde dir die Abfrage weiterhin um die Ohren hauen und das wäre auch gut so. Gewöhne dir bitte korrektes SQL an.
Ciao, Frank