von DPunch » Mi, 20.01.2010 17:16
Das ist meines Wissens nach ein allgemeines SQL-"Problem" - da das SELECT einer SQL Anweisung erst am Ende ausgewertet wird (und somit auch dann erst der Aliasname vergeben wird), kann im Filter (also der Where-Klausel) der Aliasname noch nicht bekannt sein.
Das "lustige" ist, dass bei einer reinen Base-Datenbank (also wenn Base nicht lediglich als Frontend dient) diese Filterung funktioniert.
Base übersetzt die Aliasnamen intern wieder zurück in die Originalnamen, wenn es als eigene DB benutzt wird, und wendet dann darauf die Filter an, während es als Frontend lediglich die Abfrage ergänzt um den Filter (=die Where-Klausel) an die dahinter liegende Datenbank zur Verarbeitung weiterreicht. In diesem Falle tritt dann oben geschildertes "Problem" auf.
Du könntest mal testen, ob das Ganze funktioniert, wenn Du den Umweg über einen View gehst - in diesem Falle wären die Spaltennamen nämlich von Anfang an unter ihrem Alias bekannt.
Ansonsten bliebe Dir der steinige Weg über die Makroprogrammierung, dort könntest Du den Filter nämlich nach Belieben (und nicht nach GUI-Dropdownliste) setzen und somit im Filter mit dem echten Spaltennamen arbeiten (welchen Du aus der benutzten Query auslesen kannst).
Das ist meines Wissens nach ein allgemeines SQL-"Problem" - da das SELECT einer SQL Anweisung erst am Ende ausgewertet wird (und somit auch dann erst der Aliasname vergeben wird), kann im Filter (also der Where-Klausel) der Aliasname noch nicht bekannt sein.
Das "lustige" ist, dass bei einer reinen Base-Datenbank (also wenn Base nicht lediglich als Frontend dient) diese Filterung funktioniert.
Base übersetzt die Aliasnamen intern wieder zurück in die Originalnamen, wenn es als eigene DB benutzt wird, und wendet dann darauf die Filter an, während es als Frontend lediglich die Abfrage ergänzt um den Filter (=die Where-Klausel) an die dahinter liegende Datenbank zur Verarbeitung weiterreicht. In diesem Falle tritt dann oben geschildertes "Problem" auf.
Du könntest mal testen, ob das Ganze funktioniert, wenn Du den Umweg über einen View gehst - in diesem Falle wären die Spaltennamen nämlich von Anfang an unter ihrem Alias bekannt.
Ansonsten bliebe Dir der steinige Weg über die Makroprogrammierung, dort könntest Du den Filter nämlich nach Belieben (und nicht nach GUI-Dropdownliste) setzen und somit im Filter mit dem echten Spaltennamen arbeiten (welchen Du aus der benutzten Query auslesen kannst).