Hi!
Jetzt ist mir aber eine weitere Problematik eingefallen. Und zwar können die Lagerbestände auch Minus-Bestände haben. Also nicht nur 0. Die ISNULL() Abfrage nimmt wohl dann auch die Minusbstände oder? Wie kann ich das umgehen?
ISNULL() ist vermutlich das falsche Werkzeug, denn es wertet den Spezialwert NULL und nicht die Zahl 0 aus. NULL nimmt man im Allgemeinen für eine Angabe die nicht bekannt oder nicht vorhanden ist. Bei 0 weißt du, dass du keinen Lagerbestand hast, bei NULL musst du deinen Lagerverwalter nachschauen lassen, ob etwas und wieviel da ist. Ich nehme an, dass deine Spalte mit NOT NULL deklariert ist, dann kann sie sowieso keine NULL-Werte aufnehmen, denn das Auswerten und Pflegen von NULL über eine Programmoberfläche ist mit etwas Aufwand verbunden, so dass du den Unterschied zwischen NULL und 0 hättest kennen müssen.
Um das Ergebnis eines Vergleiches in eine sortierbare Form zu bringen, gibt es Konstrukte wie CASE oder die Funktion IF().
ORDER BY IF(x > 0, 1, IF(x = 0, 2, 3)
Lo!