Ver Mensaje Individual
  #1 (permalink)  
Antiguo 22/10/2009, 20:01
Avatar de Carxl
Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 18 años, 7 meses
Puntos: 70
Usar alias en un where

Hola, que tal?

Una duda en una consulta, haber si me ayudan a resolverla...

Tengo una tabla con un campo que tiene fecha de nacimiento, llamémosla "users":

USERS

id_user (int)
users_fullname (varchar)
users_edad (date)


Ahora bien, resulta que tengo que traer los registros de las personas que tengan entre 18 y 25 años. Y esa es mi duda, logro traer la edad, pero no sé como hacer para decirle a mysql que me traiga los usurios entre esos años .

Esto es lo que llevo:

Código mysql:
Ver original
  1. SELECT users_fullname, users_edad, (YEAR(CURRENT_DATE) - YEAR(users_edad)) - (RIGHT(CURRENT_DATE,5) < RIGHT(users_edad,5)) AS edad FROM ew_users

Me arroja registros como estos:

Código:
Alguien - 1976-02-24 - 33
Alguien mas - 1983-12-22 - 25
Otro alguien - 1984-10-20 - 25
Sería fácil si mysql permitiera usar el alias "edad" en el where pero no lo permite, yo había pensado hacerlo así (complementando):

Código mysql:
Ver original
  1. SELECT users_fullname, users_edad, (YEAR(CURRENT_DATE) - YEAR(users_edad)) - (RIGHT(CURRENT_DATE,5) < RIGHT(users_edad,5)) AS edad FROM ew_users WHERE edad betwwen 18 and 25;

Pero no, mysql no permite hacer eso...

Cómo puedo usar el alias dentro del where? o de qué manera puedo usar las edades calculadas en la consulta?

Disculpen lo extenso, quería ser claro

Gracias de antemano


Saludos
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com