Also mein Problem ist, das es auch Artikel gibt, die zwar verfügbar sind aber nicht mehr angezeigt werden da kein TerminTagBS drin steht dort steht einfach nur NULL drin. Eine Lösung wäre es ja das ganze mit Order by zu sortieren und mit Top 1 nur den ersten auszugeben. Aber ich weiß nicht genau wie ich VOR dem Where den Order by befehl ausführen soll.
Aber ich dachte du willst nur die aktuellsten Bestellungen ausgeben, und wenn da kein TerminTagBS gesetzt ist bedeutet das doch, dass niemand das Produkt bestellt hat.
Kannst du vielleicht mal eine Beispieltabelle mit Daten in SQLFiddle basteln (kannst ja mein Template nehmen) und dann sagen was genau aus der Query rauskommen soll?
Vielleicht kriege ich noch was dazu gebastelt aber aus deiner textuellen Beschreibung werde ich ehrlich gesagt nicht schlau.
Du kannst grundsätzlich kein ORDER BY vor einem WHERE anwenden, weil das eh keinen Sinn machen würde, du kannst nur deine Ergebnistupel sortieren,
sortierst du bevor du mit WHERE die Elemente prüfst wäre deine Ergebnismenge unsortiert.
Möchtest du aus einer bereits sortierten Tabelle Daten queryen musst du sie in einer Unterquery starten, dort sortieren, und in der Hauptquery referenzieren, wie es BugFix bereits angesprochen hatte.
Das macht aber nur bedingt Sinn, da du nicht auf die Subqueries von überall referenzieren kannst, deswegen müsstest du mehrere Subqueries haben und das ist zeitlich und speicherbedingt keine gute Idee.
Da empfiehlt es sich eher eine Funktion zu schreiben welche mit einem Cursor deine Datenmenge iteriert, sortiert und ausgibt.