Usar un alias en una cláusula WHERE

Tengo una consulta que pretende mostrarme las filas de la tabla A que no se han actualizado recientemente. (Cada fila debe actualizarse dentro de los 2 meses posteriores a "month_no"):

SELECT A.identifier
     , A.name
     , TO_NUMBER(DECODE( A.month_no
             , 1, 200803 
             , 2, 200804 
             , 3, 200805 
             , 4, 200806 
             , 5, 200807 
             , 6, 200808 
             , 7, 200809 
             , 8, 200810 
             , 9, 200811 
             , 10, 200812 
             , 11, 200701 
             , 12, 200702
             , NULL)) as MONTH_NO
     , TO_NUMBER(TO_CHAR(B.last_update_date, 'YYYYMM')) as UPD_DATE
  FROM table_a A
     , table_b B
 WHERE A.identifier = B.identifier
   AND MONTH_NO > UPD_DATE

La última línea en la cláusula WHERE provoca un error "ORA-00904 Identificador no válido". No hace falta decir que no quiero repetir toda la función DECODE en mi cláusula WHERE. ¿Alguna idea? (Se aceptan correcciones y soluciones alternativas ...)

Respuestas a la pregunta(5)

Su respuesta a la pregunta