Borrar Registros Duplicados
Publicado por Brinklo (4 intervenciones) el 11/04/2007 17:53:17
Hola a todos
Necesito la ayuda de alguno de ustedes.
Tengo una tabla de clientes con sus caracteristicas.
Mi indice es el numero de Cuenta (num_cta) pero muchos de los usuarios que utilizan mi base de datos, han agregado varios clientes cuya informacion esta repetida (el nombre, direccion, referencias, etc). Pero el numero de cuentas es distinto.
Cree un codigo para intentar localizarlos pero ya me trabé,
*Utilizo la tabla Clientes indexada por nombre del cliente
SELECT 1
USE CLIENTES INDEX CLI_NOMB SHARED
SELECT 1
DO WHILE .NOT. EOF()
*Guardo los primeros valores
NOMB1=NOMB_CLI
DIR1=DOMICILIO
*SEEK CLIENTES->NOMB_CLI
DO WHILE.NOT. EOF()
*Guardo los segundos valores
NOMB2=NOMB_CLI
DIR2=DOMICILIO
*Si son iguales
IF NOMB1=NOMB2 .OR. DIR1=DIR2 THEN
*Borrar el registro o marcarlo
ENDIF
SKIP
ENDDO
SKIP
ENDDO
CLOSE ALL
Podria alguien ayudarme o si tiene una sugerencia mejor es bien recibida?
Necesito la ayuda de alguno de ustedes.
Tengo una tabla de clientes con sus caracteristicas.
Mi indice es el numero de Cuenta (num_cta) pero muchos de los usuarios que utilizan mi base de datos, han agregado varios clientes cuya informacion esta repetida (el nombre, direccion, referencias, etc). Pero el numero de cuentas es distinto.
Cree un codigo para intentar localizarlos pero ya me trabé,
*Utilizo la tabla Clientes indexada por nombre del cliente
SELECT 1
USE CLIENTES INDEX CLI_NOMB SHARED
SELECT 1
DO WHILE .NOT. EOF()
*Guardo los primeros valores
NOMB1=NOMB_CLI
DIR1=DOMICILIO
*SEEK CLIENTES->NOMB_CLI
DO WHILE.NOT. EOF()
*Guardo los segundos valores
NOMB2=NOMB_CLI
DIR2=DOMICILIO
*Si son iguales
IF NOMB1=NOMB2 .OR. DIR1=DIR2 THEN
*Borrar el registro o marcarlo
ENDIF
SKIP
ENDDO
SKIP
ENDDO
CLOSE ALL
Podria alguien ayudarme o si tiene una sugerencia mejor es bien recibida?
Valora esta pregunta


0