Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

[SOLUCIONADO] referirse a una columna por su alias?

Estas en el tema de referirse a una columna por su alias? en el foro de Mysql en Foros del Web. Hola, gracias por adelantado, pues tengo una duda yo tengo por ejemplo select esta columna de aki abajo sum(select sum(`tbonos`.`cantbono`) AS `FIELD_1` from `tbonos` ) ...
  #1 (permalink)  
Antiguo 17/04/2012, 18:24
 
Fecha de Ingreso: julio-2009
Mensajes: 26
Antigüedad: 14 años, 9 meses
Puntos: 2
referirse a una columna por su alias?

Hola, gracias por adelantado, pues tengo una duda
yo tengo por ejemplo


select esta columna de aki abajo
sum(select sum(`tbonos`.`cantbono`) AS `FIELD_1` from `tbonos` ) AS `Escapada`,
(IF(isnull(`Escapada`), 0, `Escapada`) +1) AS `TOTAL`

o sea la duda es si para referime a mi columna calculada Escapada puedo hacerlo por e alias de alguna forma o si es la unica opcion hacer esto

(IF(isnull(sum(select sum(`tbonos`.`cantbono`) AS `FIELD_1` from `tbonos` ) AS `Escapada`,), 0, sum(select sum(`tbonos`.`cantbono`) AS `FIELD_1` from `tbonos` ) AS `Escapada`) +1) AS `TOTAL`

bueno la consuta real es mas compleja pero la esencia es esta si puedo ultilizar una columna llamandola por su alias ya es ques una subconsulta

Gracias
  #2 (permalink)  
Antiguo 18/04/2012, 04:08
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: referirse a una columna por su alias?

Los alias tienen dos restricciones:
1) No puedes usar el alias dado en el SELECT en una operación con ningún otra columna del mismo SELECT.
2) No puedes usar los alias de las columnas en el WHERE.

Es decir que no puedes hacer:
Código MySQL:
Ver original
  1. SELECT a, SUM(b) suma, (suma - c) restaDeC
  2. FROM tabla

Ni tampoco
Código MySQL:
Ver original
  1. SELECT a, SUM(b) suma, c
  2. FROM tabla
  3. WHERE suma = 45;

La primera se resuelve usando consultas anidadas. La segunda usando HAVING
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 18/04/2012, 12:41
 
Fecha de Ingreso: julio-2009
Mensajes: 26
Antigüedad: 14 años, 9 meses
Puntos: 2
Respuesta: referirse a una columna por su alias?

Gracias, al final lo solucione como explique arriba pero utilizando
ifnull(x,x)
  #4 (permalink)  
Antiguo 18/04/2012, 12:48
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: referirse a una columna por su alias?

LO noté. Pero a mi entender eso es un parche, no una solución.

Los parches tarde o temprano los pagas con performance.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: columna, select
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:38.