Visual FoxPro.NET - ACTUALIZAR TABLA 1 CON TABLA 2

   
Vista:

ACTUALIZAR TABLA 1 CON TABLA 2

Publicado por daniel (2 intervenciones) el 19/04/2010 09:27:08
Alguien me podria decir que esta mal en este codigo:

scan for aportes.codmod=impor.n1
update aportes SET aportes.a1991=impor.n2 WHERE aportes.mes='NOVIEMBRE'
endscan

lo que sucede es que quiero que de la tabla impor se pasen datos a la tabla aportes , pero bajo esas condiciones, , cuando ejecuto no sale nada parece que en la comparacion de aportes.codmod=impor.n1 no compara nada, el tipo de datos de ambos campos son el mismo: caracter 11
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:ACTUALIZAR TABLA 1 CON TABLA 2

Publicado por daniel (2 intervenciones) el 19/04/2010 10:13:02
bueno creo que el codigo anterior que presente, no esta bien echo , lo intente hacer de otra manera pero igual no me funciona, aunque hay mas logica en el siguiente codigo , haber si me ayudan porfavor:

public a,b
a=1
b=1
select impor
go b
do while !eof()
select aportes
go top
do while !eof()

if (impor.n1=aportes.codmod and aportes='NOVIEMBRE') then
update aportes SET aportes.a1991=impor.n2
b=b+1
exit while
endif
skip
enddo
skip
enddo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ACTUALIZAR TABLA 1 CON TABLA 2

Publicado por hernan (3 intervenciones) el 16/06/2010 22:41:02
cuando comparas dos campos usualmente no son iguales debido a los espacios en blanco que no se ven.

Es conveniente poner los siguiente:

trim(impor.n1) = trim(aportes.codmod)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Mauricio

ACTUALIZAR TABLA 1 CON TABLA 2

Publicado por Mauricio (9 intervenciones) el 25/06/2010 15:16:19
Pruebalo de esta manera:
*
SELE aportes
GO TOP
SCAN && barrer aportes
*** SELE import
*** GO TOP && Esto para barrer desde el inicio
*** SCAN && barrer import
******* IF ALLT(a1991) = ALLT(n2) AND ALLT(mes) = "NOVIEMBRE"
********** UPDATE aportes SET a1991 = n1
******* ENDIF
**** ENDSCAN
**** SELE aportes && Posicionarse de nuevo en aportes
ENDSCAN
*
PD. Quita los asteriscos, lo hice asi para ver bien el proceso.
Existe una manera alternativa de hacer el segundo SCAN y es usando el SEEK, pero no se si la ocurrencia puede ser de una o de varias.
Suerte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar