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

alias y between error, unknown column

Estas en el tema de alias y between error, unknown column en el foro de Mysql en Foros del Web. Hola, tengo problema con este query Código PHP: SELECT id_institute ,  SUM ( int_users ) AS  suma FROM rel_inst_x_isbn WHERE id_institute  > 1  and  suma between 20  AND  100 GROUP BY id_institute  me regresa "unknown column ...
  #1 (permalink)  
Antiguo 06/05/2009, 10:41
 
Fecha de Ingreso: abril-2009
Mensajes: 1
Antigüedad: 15 años
Puntos: 0
alias y between error, unknown column

Hola, tengo problema con este query

Código PHP:
SELECT id_instituteSUM(int_users) AS suma FROM rel_inst_x_isbn WHERE id_institute >and suma between 20 AND 100 GROUP BY id_institute 
me regresa "unknown column suma"...
practicamente lo que necesito es que de la suma "int_users" y que el alias es "suma",,, de ese mismo alias me haga un between.
se los agradeseria mucho si alguien me puede ayudar

Gracias
Lithium

Respuesta:

Muchas gracias por la ayuda encontre otra solucion
como ya se mencionó, mysql no admite usar alias en un where, para eso podemos usar "having" que permite usar seleciones que en where no son posibles... y quedó así
Código PHP:
SELECT id_instituteSUM(int_users) AS suma FROM rel_inst_x_isbn WHERE id_institute >1  GROUP BY id_institute  having suma between 600 and 1000 

Última edición por lithium; 06/05/2009 a las 13:04 Razón: Se encontró la solución
  #2 (permalink)  
Antiguo 06/05/2009, 12:04
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: alias y between error, unknown column

MySQL No soporta el uso de alias en un WHERE.
Para poder usar el alias, la consulta debe generar una tabla virtual, es decir, la tabla es la resultante de una subconsulta:
Código sql:
Ver original
  1. SELECT
  2.     id_institute,
  3.     SUM(int_users) suma
  4. FROM (
  5.     SELECT
  6.         id_institute,
  7.         SUM(int_users) suma
  8.     FROM rel_inst_x_isbn
  9.     GROUP BY id_institute) T1
  10. WHERE id_institute >1 AND suma BETWEEN 20 AND 100 ;
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
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:20.