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

Columna calculada desde el alias de otra columna

Estas en el tema de Columna calculada desde el alias de otra columna en el foro de Mysql en Foros del Web. Buenas. pondre un ejemplo para que se me entienda mejor: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código MySQL: Ver original SELECT SUM ( facturado ) AS subtotal , SUM ...
  #1 (permalink)  
Antiguo 14/12/2012, 04:06
 
Fecha de Ingreso: noviembre-2012
Ubicación: Villa Maria, Peru
Mensajes: 46
Antigüedad: 11 años, 5 meses
Puntos: 0
Columna calculada desde el alias de otra columna

Buenas.
pondre un ejemplo para que se me entienda mejor:

Código MySQL:
Ver original
  1. SUM(facturado) AS subtotal,
  2. SUM(costos_variables) AS costos,
  3. subtotal - costos as TOTAL
  4. FROM factura
Aqui estoy creando una columna calculada desde los alias de otras columnas calculadas, me sale error, este solo es un ejemplo, mi query es mas largo y seria muy engorroso y bajaria la performance si hago esto para solucionar el problema:

Código MySQL:
Ver original
  1. SUM(facturado) AS subtotal,
  2. SUM(costos_variables) AS costos,
  3. SUM(facturado) - SUM(costos_variables) as TOTAL
  4. FROM factura
Habra una manera de agilizar el query? ,pensaba que los alias tambien servian para eso pero ya veo que no, alguna ayuda please.. :)

Última edición por gnzsoloyo; 14/12/2012 a las 04:11 Razón: Código SQL sin etiquetar
  #2 (permalink)  
Antiguo 14/12/2012, 04:17
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, 4 meses
Puntos: 2658
Respuesta: Columna calculada desde el alias de otra columna

No se puede usar un alias de una columna en el mismo SELECT que lo crea, ni tampoco se pueden usar en los WHERE. Eso es una regla general de todos los DBMS.
Cita:
mi query es mas largo y seria muy engorroso y bajaria la performance
Por un lado, sin antes probarlo, no puedes afirmar que bajaría la performance. Además, la baja performance de tu consulta no sólo podría mejorarse por otros medios, sino que bien puede deberse a otros problemas (el uso de ORDER BY y GROUP BY, por ejemplo, la falta de índices adecuados, conversiones implícitas innecesarias).
Yo que tu primero verifico los defectos que pueda tener la consulta usando EXPLAIN y recién entonces vería si efectivamente es necesario algún tipo de optimización.
De todos modos, sin conocer la consulta real y la estructura de tablas e índices que usas, es difícil darte consejos completos.
__________________
¿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: mysql+db
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 21:43.