Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   MySQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=21)
-   -   Algo raro en el select (https://www.clubdelphi.com/foros/showthread.php?t=72228)

juanjo123 04-02-2011 20:00:37

Algo raro en el select
 
Hola no llevo mucho tiempo con MySql pero si esto funciona con ORDER BY porque no el el WHERE, alguien puede ayudarme

Código SQL [-]
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

Algo raro
 
Perdon se me paso decir donde fallava
Código SQL [-]
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

Código SQL [-]
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

Caso Raro
 
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


La franja horaria es GMT +2. Ahora son las 22:13:26.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi