Problema al ordenar registros según Alias de subconsulta

Intento ordenar los registros de una consulta que utiliza un Alias que a su vez es resultado de una subconsulta, pero no me funciona. Básicamente tengo:

SELECT T.nombre, T.valor, 2*valor/(Select SUM(valor) from T where item=1) AS Resultado, FROM T
WHERE (T.item=1) order by Resultado desc

Ejemplo:
Nombre valor item
pepe 4 0
juan 5 1
Luis 15 1

El resultado deseado sería:
Nombre valor Resultado
Luis 15 1,5
juan 5 0,5

Sin embargo, la consulta no me genera error cuando quito el "order by Resultado desc", en cuyo caso, los registros me aparecen, pero sin el orden que busco, vamos que el problema está en el 'order by' del alias.

¿Cómo podría corregirlo?

1 Respuesta

Respuesta
1

Es un tema que temo que pueda variar según la bbdd pero veo 3 posibilidades:

- Meter los datos de la consulta en una tabla temporal y luego SELECT * FROM tmp ORDER BY resultado. (Esta debe funcionar en cualquier caso).

- SELECT T.nombre, T.valor, 2*valor/(Select SUM(valor) from T where item=1) AS Resultado, FROM T WHERE (T.item=1) ORDER BY 2*valor/(Select SUM(valor) from T where item=1). (Esta parece muy conflictiva)

- SELECT * FROM (SELECT T.nombre, T.valor, 2*valor/(Select SUM(valor) from T where item=1) AS Resultado, FROM T WHERE T.item=1) ORDER BY resultado.

Suerte

Hola buenas!!

muchas gracias por tu colaboración e inestimable ayuda.

Salvando la opción 1ª basada en otra tabla (que sería otra buena alternativa), y la 2ª a mí me da error (es complicada), con la 3ª se resuelve perfectamente, únicamente indicar dos matices en ella:

- el primero es que sobraría la coma que yo mismo puse: AS Resultado, From T....

debería ser: ..... AS Resultado From T........

- y luego al final poner el Order by Desc

En definitiva, sería:

SELECT * FROM (SELECT T.nombre, T.valor, 2*valor/(Select SUM(valor) from T where item=1) AS Resultado FROM T WHERE T.item=1) ORDER BY resultado desc

Funciona perfectamente.

Gracias nuevamente.

Saludos!!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas