Reemplazar campo en base a otro campo de otra tabl

Hola :
Tengo una tabla que acumula diferencias
Ese archivo lo indexo por el campo fecha, para comprobar que el archivo que voy a anexar
(DIFERENCIAS_20060430) NO EXISTAN DENTRO DEL ARCHIVO ACUMULA_DIFER.
Pero unicamente me reemplaza el primer registro y de ahí no pasa.
Me podrías decir que estoy haciendo mal o en su defecto darme otra idea
este es el código que utilizo
de antemano gracias
saludos
SET EXACT ON
USE acumula_difer
INDEX ON fecha_dif TO fech0 unique
COPY fields fecha_dif TO fechas_anex
SELECT 1
USE DIFERENCIAS_20060430
INDEX ON FECHA_DIF TO FECH1
SELECT 2
USE FECHAS_ANEX
INDEX ON FECHA_DIF TO FECH2
Select 2 && FECHAS_ANEX
Set order to FECH2
Select 1 && DIFERENCIAS_20060430
Scan
Cred = alltrim(FECHA_DIF)
if Seek(cred)
Replace ANEXAR with "SI"
ELSE
Replace ANEXAR with "NO"
Endif
Endscan
SELECT acumula_difer
APPEND FROM DIFERENCIAS_20060430 FOR ALLTRIM(ANEXAR)="SI"

1 Respuesta

Respuesta
1
Intenta con algo similar a:
Close databases all
SET EXACT ON
USE Acumula_difer IN 0 ALIAS Acumula
INDEX ON fecha_dif TO fech00
COPY FIELDS fecha_dif TO Fechas_anex
USE Diferencias_20060430 IN 0 ALIAS Diferencias
USE Fechas_anex IN 0 ALIAS Fechas
SELECT Fechas
INDEX ON fecha_dif TO fech02
SELECT Diferencias
INDEX ON fecha_dif TO fech01
GO TOP
DO WHILE !EOF()
SELECT Fechas
SEEK Diferencias.fecha_dif
m.cValor = IIF( EOF(), "SI", "NO" )
SELECT Diferencias
REPLACE Anexar WITH m.cValor
SKIP
ENDDO
SELECT Acumula
APPEND FROM Diferencias FOR ALLTRIM( anexar ) == "SI"
... bueno, eso digo yo.
Víctor.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas