Hallo,
Ob MS-SQL das auch nicht mag, weiß ich nicht, aber andere DBMS mögen es nicht, wenn man in der WHERE-Klausel mit den Alias-Namen arbeitet.
der MS SQL-Server mag das auch nicht.
Diese werden erst nach dem Ermitteln des Ergebnisses den Spalten hinzugefügt. Vorher muss man auf den originalen Spaltennamen zugreifen oder den Ausdruck, den man zu aliasen gedenkt, noch einmal hinschreiben.
insbesondere ist es hier ganz umgekehrt ratsam, nicht irgendwelche Zeichenketten mit BETWEEN zu vergleichen, sondern Datumsangaben.
Das bedeutet, dass die seltsamen Zeichenketten
'$von'
und
'$bis',
die ganz bestimmt nicht so an das DBMS übergeben werden, im SQL-Statement in den passenden Datums- und Zeittyp umzuwandeln sind und nicht umgekehrt. Wie das geht, steht im Handbuch.
Der OP sollte zuerst das SQL-Statement von Hand richtig zusammenbauen, bevor er PHP damit beauftragt.
Freundliche Grüße
Vinzenz