Sempre que me deparo com esse tipo de consulta, sempre me pergunto como o SQL Server funcionaria. Se eu executar qualquer tipo de consulta que exija um cálculo e, em seguida, usar esse valor em vários locais, por exemplo, no selecte no order by, o SQL Server o calculará duas vezes para cada linha...