Aha.
Kurzgefasst:
Die gewählte ID, sofern sie höher oder gleich der mengeX ist, sonst die erste ID die höher als mengeX ist und ansonsten die letzte id.
So, da ich SQL-Spielchen liebe, hab ich mal etwas entworfen. Anstelle der Variablen kann man die 2 Werte auch direkt ins SQL einfügen.
Kurzgefasst:
Die gewählte ID, sofern sie höher oder gleich der mengeX ist, sonst die erste ID die höher als mengeX ist und ansonsten die letzte id.
So, da ich SQL-Spielchen liebe, hab ich mal etwas entworfen. Anstelle der Variablen kann man die 2 Werte auch direkt ins SQL einfügen.
SQL:
# Die Variablen definieren
SET @idX = 1;
SET @mengeX = 22;
# Die Daten selektionieren
SELECT
id,
menge
FROM
menge,
# Grösste menge bestimmen
(SELECT max(menge) AS max_menge FROM menge) AS max_m
WHERE
# Alle Daten seelktionieren die grösser als mengeX sind
menge >= @mengeX
# oder dem grössten menge-Wert entsprechen
OR menge = max_menge
ORDER BY
# Zuerst danach sortieren, ob der Wert der idX entspricht
(id<>@idX),
# dann nach der Menge
menge,
# und zuletzt nach der id um bei mehreren Datensätzen
# mit der gleichen maximalen menge den mit der tiefste id auszuwählen
id
LIMIT 1;
Zuletzt bearbeitet von einem Moderator: