PDA

Ver la Versión Completa : Consulta SQL


MaMu
26-07-2007, 21:11:21
Resulta que tengo una base de datos, con id_persona,nombre y apellido.

Y quiero consultar ingresando un nombre y apellido, si la persona tiene parecidos (aunque no lo sean, si se llaman igual, o tienen el mismo nombre o apellido). Pero cuando realizo la consulta, me devuelve dentro de la consulta, el nombr y apellido con el que consulte, y no quiero que aparezca. Como puedo hacer??

Consulto con Juan Perez a la lista

1 Raul Gomez
2 Pepe Rodriguez
3 Juan Perez
4 Emilio Perez
5 Raul Gonzalez

Y me devuelve
Juan Perez
Emilio Perez

y yo solo quiero que aparezca
Emilio Perez

Hago la consulta con un Query

Query1.SQL.Add('select * from personas where apellido="'+Edit1.text+'"')


Saludos y gracias

Caral
26-07-2007, 21:15:40
Hola
No se si te funcionara asi:

Query1.SQL.Add('select * from personas where apellido Like"'+Edit1.text+'"')
Saludos

gabrielkc
26-07-2007, 21:31:28
Query1.SQL.Text:='select * from personas where (apellido="'+Edit1.text+'" AND nombre<>
"'+Edit2.text+'") OR (apellido<>"'+Edit1.text+'" AND nombre="'+Edit2.text+'"')


mmmm que tal así?

MaMu
26-07-2007, 21:58:34
Pero, las consultas que me muestran, son otra forma de consultar, y de hecho, funcionan bien, pero me sigue apareciendo el registro que uso para consulta, y no quiero que se muestre este:

Tabla

id nombre apellido
===============
1 Roman Perez
2 Guillermo Gomez
3 Oscar Fleitas
4 Omar Gallardo
5 Luis Pascutti
6 Raul Perez

Y consulto:
nombre:='Roman';
apellido:='Perez';

Query1.SQL.Add('select * from personas where nombre="'+nombre+'" or apellido="'+apellido+'"');

me devuelve;
1 Roman Perez
6 Raul Perez

Que esta bien, pero como hago para que,

nombre:='Roman';
apellido:='Perez';


No me aparezca tambien en la consulta, como lo filtro?. Es obvio que en la consulta aparece por estar en la misma tabla y por cumplir con la consulta, pero no quiero que se muestre, los demas que cumplan si.

jhonny
26-07-2007, 22:33:05
Así:


Query1.SQL.Add('select * from personas where nombre="'+nombre+'" and apellido="'+apellido+'"');


Espero esto si sea :D.

gmontes
26-07-2007, 23:07:40
creo que esto es lo que quieres:

Query1.SQL.Add('select * from personas where apellido Like "'+apellido+'" and nombre <> "'+nombre+'"');

o

Query1.SQL.Add('select * from personas where apellido ="'+apellido+'" and nombre <> "'+nombre+'"');

Ferrari
27-07-2007, 05:06:39
Creo ke estamos cruzando caminos y realmente el mismo nos esta dando la solucion a su problema..mira, si tienes un Id en tu tabla usa una cadena compuesta por nombre y apellido..pero realmente a donde apuntaria nuestro cursos seria hacia el Id.
saludos:p

MaMu
27-07-2007, 06:45:36
Voy a replantear el problema, a ver si logro expresarlo mas claramente. Imaginen que tenemos una tabla FAMILIA, y cada uno de sus miembros es un registro. Entonces quieren consultar si por ejemplo, ustedes tienen hermanos. Entonces solo seleccionarian todos los que tengan el mismo Padre y la misma Madre, y ahi tendrian a sus hermanos. Pero, ustedes tambien saldrian en esa lista, se entiende? Yo quiero consultar si tengo hermanos, pero no quiero figurar en la lista. Capaz con este ejemplo lo ilustro mejor.
Creo que lo que dice Ferrari es cierto, y me abrio a la siguiente idea.
Los id no se repiten, entonces, aplico la misma consulta, pero donde el id_persona<>id_persona_que_Consulto. Y listo. Deberia funcionar no?
Disculpen si antes no me he sabido expresar, quizas es porque nuestros lenguajes son casi identicos, las formas de expresarnos no lo son.
Muchas gracias a todos.