MySQL Minimalwert über mehrere Spalten, jedoch nicht 0
Minimalwert auswerten, allerdings nicht 0 (also größer 0)
Hallo,
ich habe eine Tabelle mit mehreren Werten in mehreren Spalten wo ich den Mindestwert bestimmen muss.
Allerdings habe ich das Problem, dass dieser Wert nicht 0 sein darf.
Schema
ID, Wert01, Wert02, Wert03
1, 300, 0, 325 (min is 300)
2, 225, 275, 0 (min is 225)
3, 0, 500, 300 (min is 300)
Vom Prinzip her wäre das eigentlich so, allerdings bekomme ich da immer die 0 ausgewertet:
SELECT min(least(Wert01, Wert02, Wert03)) FROM table ...
Gibt es hierfür überhaupt eine SQL-Syntax oder muss ich dafür einen weiteren Workaround Scriptseitig bauen?
Gruß, Rumble
ich habe eine Tabelle mit mehreren Werten in mehreren Spalten wo ich den Mindestwert bestimmen muss.
Allerdings habe ich das Problem, dass dieser Wert nicht 0 sein darf.
Schema
ID, Wert01, Wert02, Wert03
1, 300, 0, 325 (min is 300)
2, 225, 275, 0 (min is 225)
3, 0, 500, 300 (min is 300)
Vom Prinzip her wäre das eigentlich so, allerdings bekomme ich da immer die 0 ausgewertet:
SELECT min(least(Wert01, Wert02, Wert03)) FROM table ...
Gibt es hierfür überhaupt eine SQL-Syntax oder muss ich dafür einen weiteren Workaround Scriptseitig bauen?
Gruß, Rumble
Please also mark the comments that contributed to the solution of the article
Content-Key: 201481
Url: https://administrator.de/contentid/201481
Printed on: April 25, 2024 at 12:04 o'clock
5 Comments
Latest comment
Moin moin,
also ich würde dir empfehlen noch mal dein Tabllenlayout zu überdenken und evtl. zu änderen, wenn das von deiner Seite aus machbar ist und das Schema nicht fix ist.
Wenn ich das richtig sehe hast du sowas wie mehrere Messreihen, die wiederum mehrere Messdaten haben. Da könnte man Folgendes machen:
Messreihe
ID, Name
1, Reihe 1
2, Reihe 2
...
n, Reihe XYZ
Messpunkte
ID, MessreiheID, Wert
1, 1, 300
2, 1, 0
3, 1, 325
4, 2, 225
5, 2, 275
6, 2, 0
...
m, n, 0
m+1, n, 500
m+2, n, 300
...
Dann kannst du die Tabllen JOINen (anhand der Messreihen ID) und mit einer WHERE Klausel deinen Wert finden.
Würde sagen das wäre eine saubere Lösung.
Gruß
ByteKiller
also ich würde dir empfehlen noch mal dein Tabllenlayout zu überdenken und evtl. zu änderen, wenn das von deiner Seite aus machbar ist und das Schema nicht fix ist.
Wenn ich das richtig sehe hast du sowas wie mehrere Messreihen, die wiederum mehrere Messdaten haben. Da könnte man Folgendes machen:
Messreihe
ID, Name
1, Reihe 1
2, Reihe 2
...
n, Reihe XYZ
Messpunkte
ID, MessreiheID, Wert
1, 1, 300
2, 1, 0
3, 1, 325
4, 2, 225
5, 2, 275
6, 2, 0
...
m, n, 0
m+1, n, 500
m+2, n, 300
...
Dann kannst du die Tabllen JOINen (anhand der Messreihen ID) und mit einer WHERE Klausel deinen Wert finden.
Würde sagen das wäre eine saubere Lösung.
Gruß
ByteKiller