Todoexpertos.com
http://www.todoexpertos.com
La respuesta está en Internet
Información de la pregunta
Título: Como establecer entre dos tablas Coincidentes y No
Experto: chavomix
Valoración: 4
Fecha: 23/05/2008


Como establecer entre dos tablas Coincidentes y No
Me gustaria conocer el codigo en Visual FoxPro para establecer entre dos tablas registros coincidentes y no coincidentes y marcar los registros repetidos en una tabla.

Como establecer entre dos tablas Coincidentes y No
bueno para saber los registros coincidentes entre dos tablas prueba esto tabla1 y tabla2 select * form tabla1, tabla2 where tabla1.referencia =  tabla2.referencia into cursor tbcoincidentes lo anterior es si deseas obtener los campos de la tabla1 y 2.. si quieres algunos campos especificos, nombras la tbla y el campo de la tabla que quieres... referencia es el punto de comparacion... para los no coincidente solo pregunstas si son diferente, ose...  tabla1.referencia != tabla2.referencia y listo   para marcar los registros repetidos en una tabla... imagino te refieres a marcar para eliminar.. primero listas los registros sin que se repitan... select distinct * from tabla1 into cursor datosdistintos ahora a marcar cada registro que se repita num_regis = 1 select datosdistintos go top limite = reccount() scand for num_regis <= limite   cant = 0   select tabla1   go top   n_regis1 = 0    scand n_resgis2 < = reccount()     if datosdistintos.referencia = tabla1.referencia then       cant = cant + 1       if cant > 1 then        aplicas la linea de elimnar...       endif     endif   endscan ensdcan ....... que pena no terminarte el ejemplo... pero me surgio una urgencia,,, debo ireme...

Como establecer entre dos tablas Coincidentes y No
Muy bien esto es lo que buscaba...me puedes enviar el resto del codigo del ejemplo.....gracias.

Como establecer entre dos tablas Coincidentes y No
retomando la parte de la eliminacion... que pena no responder antes.. estaba bastante ocupado select distinct * from tabla1 into cursor datosdistintos ahora marcar cada registro que se repita num_regis = 1 select datosdistintos go top limite = reccount() scand for num_regis <= limite   cant = 0   select tabla1   go top    n_regis1 = 0   scand n_resgis2 < = reccount()     if datosdistintos.referencia = tabla1.referencia then       cant = cant + 1       if cant > 1 then            replace tabla1.referencia with -1           && cambia la referencia por (-1) parea saber cuales eliminar       endif     endif   endscan ensdcan .....una ves definidos los registros a eliminar... se aplica delet from mitabla1 where mitabla1.referencia = -1 select mitabla1 pack ... listo... para aplicar el pack debes abrir la tabla en modo exclusivo...

Pregunta finalizada. Valoración: 4
Muy bien era lo que necesitba.


Volver al mensaje
http://www.todoexpertos.com/categorias/tecnologia-e-internet/programacion/visual-fox-pro/respuestas/1849698/como-establecer-entre-dos-tablas-coincidentes-y-no