PDA

Ver la Versión Completa : Algo raro en el select


juanjo123
04-02-2011, 20:00:37
Hola no llevo mucho tiempo con MySql pero si esto funciona con ORDER BY porque no el el WHERE, alguien puede ayudarme


SELECT
empl_codigo_empleado,
empl_nif,
empl_nass,
concat(empl_apellidos,', ',empl_nombre) AS nombre_empleado
from per_empleados
WHERE delg_codigo_delegacion in ('200','502') and cent_codigo_centro in ('500','500')
AND nombre_empleado LIKE '%lopez%'
ORDER BY nombre_empleado asc

roman
04-02-2011, 20:28:40
No entiendo la pregunta. ¿Qué es lo que no funciona?

// Saludos

juanjo123
04-02-2011, 20:39:05
Perdon se me paso decir donde fallava

ELECT
empl_codigo_empleado,
empl_nif,
empl_nass,
concat(empl_apellidos,', ',empl_nombre) AS nombre_empleado
from per_empleados
WHERE delg_codigo_delegacion in ('200','502') and cent_codigo_centro in ('500','500')
AND nombre_empleado LIKE '%lopez%'
ORDER BY nombre_empleado asc

El campo marcado de rojo me dice que no existe, si funciona en la parte del select pero al filtrar por el hay dice que no existe, se puede hacer eso?

ElKurgan
04-02-2011, 22:32:15
Desconozco MySql, pero en Oracle primero se ejecuta el "Where", con los nombres originales de los campos, y luego el "Order By", donde SI reconoce los alias de los campos. A lo mejor aqui está pasando lo mismo, ya que en teoria tanto Oracle como MySql siguen las normas del estandar SQL

Saludos

mightydragonlor
04-02-2011, 23:20:28
SELECT
empl_codigo_empleado,
empl_nif,
empl_nass,
concat(empl_apellidos,', ',empl_nombre) AS nombre_empleado
from per_empleados
WHERE delg_codigo_delegacion in ('200','502') and cent_codigo_centro in ('500','500')
AND nombre_empleado LIKE '%lopez%'
ORDER BY concat(empl_apellidos,', ',empl_nombre) asc


así es como debe hacerse, y así lo he hecho yo en msSQL.

juanjo123
05-02-2011, 00:02:47
por logica me parece que si deberia de ser correcto, pero hago la consulta con
navicat y me devuelve Error 1054 Unknouw column 'nombre_empleado' in 'where clause'

no me explico porque si le quito (AND nombre_empleado LIKE '%lopez%') funciona perfectamente

Gracias por vuestra atencion


Juan Jose Lopez Garcia