Hallo!
SELECT ID, MAX(preis)
FROM produkte
GROUP BY warengruppeDas ist an sich kein gültiges SQL-Statement, da es nicht eindeutig ist. Das funktioniert nur in kaputten Datenbanken.
jepp, siehe: http://aktuell.de.selfhtml.org/tippstricks/datenbanken/having/
Eine mögliche Lösungsvariante ist:
SELECT id, preis
FROM tabelle
WHERE preis = (SELECT MAX(preis) FROM tabelle)Allerdings muss dazu das Datenbanksystem auch Sub-Queries verstehen.
Hm, bisher habe ich immer einen Bogen um etwas fortschrittlichere Features gemacht, da ich nach Möglichkeit keinen DB-spezifischen Code schreiben will. Ich verwende eine DB-Abstraktion, und achte darauf immer einfaches/portables SQL zu verwenden - und mir ist klar dass ich hierdurch ineffizienteren Code schreibe. Kennst Du oder jemand anders hier eine nette Gegenüberstellung was welches RDBMS unterstützt? Bei mir sollten zumindest folgende unterstützt werden:
PostgreSQL
MySQL
Oracle
IBM DB2
MSSQL
das wären die wichtigsten. Z.B. bei Sub-Queries, das ist ein Feature was ich schon des öfteren gut hätte gebrauchen können. MySQL kann das ja auch ab 4.1, allerdings habe ich - je komplexer die Queries werden - immer größere Befürchtungen dass es nicht mehr überall läuft. Habt Ihr da Erfahrungen?
Grüße
Andreas
SELFHTML Linkverzeichnis: http://aktuell.de.selfhtml.org/links/