Från dokumentationen (min kursivering):
Du kan använda ett kolumnalias,
c_alias
, för att märka det omedelbart föregående uttrycket i urvalslistan så att kolumnen visas med en ny rubrik. Aliaset byter effektivt namn på urvalslistobjektet under hela frågan. Aliaset kan användas iORDER BY sats, men inte andra satser i frågan.
Så du kan inte referera till aliaset i where
klausul, där du för tillfället har:
...
AND (account_amt NOT BETWEEN ...
...
Aliaset är inte giltigt vid den tidpunkten, så det letar efter en kolumn med det namnet i en av tabellerna och hittar ingen. Det är bra i ordning efter
dock.
Du måste antingen ersätta aliaset med den upprepade avkodningen
uttalande, eller eventuellt använda en underfråga och sedan hänvisa till aliaset i en where
klausul i en yttre fråga, men det kan sluta bli mindre effektivt beroende på hur selektiva dina andra villkor är.