Hola GOKUF4:
En SQL Server no puedes utilizar ALIAS o campos calculados en la sección WHERE, ya que estos existen sólo después de la ejecución.
Tendrías que hacer algo como esto:
Código:
select * from
(
SELECT FI.idFicha,CLI.idCliente,
(SELECT TOP 1 Observaciones.idObservacion FROM Observaciones WHERE FI.idFicha=Observaciones.idFicha ORDER BY Observaciones.idObservacion DESC) AS idObservacion,
(SELECT TOP 1 NotasTecnicas.idNotaTecnica FROM NotasTecnicas WHERE FI.idFicha=NotasTecnicas.idFicha ORDER BY NotasTecnicas.idNotaTecnica DESC) as idNotaTecnica
FROM Fichas FI
) T1
WHERE idNotaTecnica like 'cosa';
La parte en azul es tu consulta que dices que funciona... observa que se utiliza como una subconsulta, y la condición WHERE evalua después de ejecutar dicha subconsulta.
Saludos
Leo