Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 05-06-2006
PedroAlfonso PedroAlfonso is offline
Miembro
 
Registrado: mar 2005
Posts: 34
Poder: 0
PedroAlfonso Va por buen camino
Wink Encontrar nombres aunque esten mal escritos

Estimados jóvenes y jovencitas:

Tengo una aplicación que tiene ya 70,000 registros con nombres de clientes
NOMBRES VARCHAR(40)
PATERNO VARCHAR(40)
MATERNO VARCHAR(40)

Estos son clientes de una tienda donde cada vez que vienen a comprar se les localiza por su nombre.
El problema está que a veces el usuario se equivoca en la ortografía de algún campo y cuando vuelve el cliente se duplica la base de datos con el mismo cliente escrito dos veces. ejemplos LOPEZ,LOPES BENAVIDES,BENABIDES etc.

Para hacer la busqueda utilizo un query

Código SQL [-]
SELECT * FROM CLIENTES 
WHERE PATERNO CONTAINING :v0 AND MATERNO CONTAINING:v1 AND NOMBRES CONTAINING :v2
¿Alguna idea para que el query sea más inteligente y evite errores?

Última edición por dec fecha: 05-06-2006 a las 23:10:00.
Responder Con Cita
  #2  
Antiguo 05-06-2006
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
vtdeleon Va por buen camino
Los clientes tiene un documento de Identidad?

Creo que esa es la mejor forma de no repertir clientes, buscandolo por su ID.
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
Responder Con Cita
  #3  
Antiguo 05-06-2006
Avatar de lpmlpm
lpmlpm lpmlpm is offline
Miembro
 
Registrado: ago 2005
Posts: 136
Poder: 19
lpmlpm Va por buen camino
Puedes usar la función SoundEx que te devolvería el mismo valor para cadenas que suenen similarmente

Saludos
__________________
"Lo mejor de no saber hacer nada es que se tiene mucho tiempo libre."
Responder Con Cita
  #4  
Antiguo 05-06-2006
PedroAlfonso PedroAlfonso is offline
Miembro
 
Registrado: mar 2005
Posts: 34
Poder: 0
PedroAlfonso Va por buen camino
Cita:
Empezado por vtdeleon
Los clientes tiene un documento de Identidad?

Creo que esa es la mejor forma de no repertir clientes, buscandolo por su ID.
Te escribo desde México, si tenemos documento de identidad (Credencial de elector) pero no todo mundo lo porta. Por eso no puedo pedirlo como requisito.
Responder Con Cita
  #5  
Antiguo 06-06-2006
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.042
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
pues necesitas algo que identifique a cada persona, por ejemplo su huella digital, con un simple lector lo puedes solucionar, así si no llevan su documento de identidad, casi seguro que traen el dedo

Bromas aparte, es totalmente necesario que exista un código, huella, etc que sea totalmente segura la identificación de las distintas personas.

Además de qué sucede si hay dos personas, o más, que se llaman igual?

Última edición por Casimiro Notevi fecha: 06-06-2006 a las 00:22:28.
Responder Con Cita
  #6  
Antiguo 06-06-2006
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Cita:
Empezado por Casimiro
Además de qué sucede si hay dos personas, o más, que se llaman igual?
Y haberlas haylas...
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #7  
Antiguo 06-06-2006
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
vtdeleon Va por buen camino
Saludos
Cita:
Empezado por dec
Y haberlas haylas...
Eeeeh??
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
Responder Con Cita
  #8  
Antiguo 06-06-2006
Avatar de AGAG4
AGAG4 AGAG4 is offline
Miembro
 
Registrado: ago 2004
Ubicación: Los Mochis, Sinaloa, México
Posts: 1.420
Poder: 21
AGAG4 Va por buen camino
Checa Esto

Yo tuve un problema similar al tuyo, pero lo solucione gracias al RFC del cliente, aqui en méxico cada Contribuyente(Paga Impuestos) se le asigna una serie de numeros y letras(código único), con esto resuelves tu problema cada vez de que den de alta a un cliente nuevo, otra cosa el uso del containing te puede ayudar demasiado es una poderosa herramienta que encuentra una aguja en un pajar con esta también puedes evitar ese tipo de problemas....

Saludos....
Responder Con Cita
  #9  
Antiguo 06-06-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Lo de containing lo he usado de forma parecida. Cuando se va a dar de alta un registro y el usuario escribe el nombre del cliente, en un grid (o con una rutina de Autocompleta) se busca en la base de datos los nombres que sean parecidos, así el usuario vé los nombres que ya estan dados de alta y no lo duplica.

Si comete un fallo en la primera letra del nombre no hay solución, lo duplilcará
No creo que se deba incluir Inteligencia Artificial al programa para este tipo de cosas... o ¿si?

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #10  
Antiguo 07-06-2006
PedroAlfonso PedroAlfonso is offline
Miembro
 
Registrado: mar 2005
Posts: 34
Poder: 0
PedroAlfonso Va por buen camino
Cita:
Empezado por Casimiro Notevi
pues necesitas algo que identifique a cada persona, por ejemplo su huella digital, con un simple lector lo puedes solucionar, así si no llevan su documento de identidad, casi seguro que traen el dedo
Gracias por los comentarios de todos, la huella ya la manejo. Pero sigo con el problema que como son demasiados clientes para hacer una busqueda con la huella 1:n tengo que filtrar la cantidad de registros para comparar la huella incluyendo en el query el apellido paterno; de lo contrario se tarda demasiado.
Pero es ahi donde si los inteligentisimos usuarios ponen mal una letra en la busqueda no se encuentra el cliente.

Por ahi alguien comentó que hay personas con el mismo nombre, también guardo la dirección (para fines estadísticos y de mercadotecnia) y asi con la dirección sabemos si es la misma persona.

El RFC es bueno, pero no utilicé ese dato porque los clientes son de clase baja en su mayoría y en el analisis los usuarios me comentaron que sería complicado manejar el RFC (tal vez hubiera sido una opción bastante viable pero nimodo). Si asigno un numero (folio) a cada cliente.

Voy a probar el SOUNDEX a ver que tal.

Última edición por vtdeleon fecha: 08-06-2006 a las 04:11:37.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Programas escritos con Delphi [Gunman] Varios 16 23-11-2005 14:32:36
Mostrar campos que no esten en una tabla jbetancurt Firebird e Interbase 2 11-11-2004 04:15:30
Obtener Todo El Registro De Una Tabla Aunque Aunque Este Agrupado Por 2 Campos agova SQL 6 11-08-2004 15:48:14
ordernar nombres y evitar nombres repetidos en DBLookupComboBox @-Soft Conexión con bases de datos 4 14-01-2004 16:30:51
Microsolft ha comprado Borland aunque no lo diga Gabriel Noticias 7 07-07-2003 16:13:14


La franja horaria es GMT +2. Ahora son las 01:27:28.


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