Foros del Web » Programando para Internet » PHP »

Error en consulta

Estas en el tema de Error en consulta en el foro de PHP en Foros del Web. hola a todos, tengo esta consulta sql el cual me arroja error $sql="select Funcionario.NomFun,Funcionario.ApeFun,NomHijo,FecN acHijo,(YEAR(CURRENT_DATE) - YEAR(FecNacHijo))- (RIGHT(CURRENT_DATE,5) < RIGHT(FecNacHijo,5)) as Edad from Familiar,Funcionario where ...
  #1 (permalink)  
Antiguo 17/11/2009, 08:47
Avatar de junarry  
Fecha de Ingreso: marzo-2007
Ubicación: colombia
Mensajes: 113
Antigüedad: 17 años, 1 mes
Puntos: 0
Error en consulta

hola a todos,

tengo esta consulta sql el cual me arroja error

$sql="select Funcionario.NomFun,Funcionario.ApeFun,NomHijo,FecN acHijo,(YEAR(CURRENT_DATE) - YEAR(FecNacHijo))- (RIGHT(CURRENT_DATE,5) < RIGHT(FecNacHijo,5)) as Edad from Familiar,Funcionario where Familiar.IdFun=Funcionario.IdFun AND Edad < 13";

en la consulta tengo dos condiciones que son:
- Familiar.IdFun=Funcionario.IdFun
- Edad < 13
Pero me arroja error

En cambio cuando quito la condicion
- Edad < 13

La consulta me funciona perfectamente!!

Alguna solucion o respuesta a este inconveniente??
  #2 (permalink)  
Antiguo 17/11/2009, 08:50
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Error en consulta

No puedes usar un ALIAS en el WHERE, quizás puedes usar HAVING:
Código MySQL:
Ver original
  1. SELECT ... FROM ... WHERE ... HAVING Edad < 13;
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 17/11/2009, 08:52
 
Fecha de Ingreso: octubre-2009
Mensajes: 29
Antigüedad: 14 años, 6 meses
Puntos: 4
Porque, si no entiendo mal, Edad la calculas en la query
Cita:
(YEAR(CURRENT_DATE) - YEAR(FecNacHijo))- (RIGHT(CURRENT_DATE,5) < RIGHT(FecNacHijo,5)) as Edad
y no se puede incluir en la clausula where, prueba con

(YEAR(CURRENT_DATE) - YEAR(FecNacHijo))- (RIGHT(CURRENT_DATE,5) < RIGHT(FecNacHijo,5)) < 13

Je, lo han explicado mejor que yo y encima he aprendido algo. Una duda en

RIGHT(CURRENT_DATE,5) < RIGHT(FecNacHijo,5)

¿para qué sirve el simbolo "<"?

Última edición por GatorV; 17/11/2009 a las 09:09
  #4 (permalink)  
Antiguo 17/11/2009, 08:56
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: Error en consulta

< ... menor a
__________________
More about me...
~ @rhyudek1
~ Github
  #5 (permalink)  
Antiguo 17/11/2009, 09:29
Avatar de junarry  
Fecha de Ingreso: marzo-2007
Ubicación: colombia
Mensajes: 113
Antigüedad: 17 años, 1 mes
Puntos: 0
Respuesta: Error en consulta

Cita:
Iniciado por David Ver Mensaje
No puedes usar un ALIAS en el WHERE, quizás puedes usar HAVING:
Código MySQL:
Ver original
  1. SELECT ... FROM ... WHERE ... HAVING Edad < 13;
Muchas gracias, no conocia la clausula HAVING. Me funciono a la perfeccion!!
  #6 (permalink)  
Antiguo 17/11/2009, 10:21
 
Fecha de Ingreso: octubre-2009
Mensajes: 29
Antigüedad: 14 años, 6 meses
Puntos: 4
Respuesta: Error en consulta

El "menor que" lo conozco :) , pero no reconozco su función dentro de ese contexto (fuera de una sentencia condicional)
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 15:11.