FoxPro/Visual FoxPro - combinar 2 tablas con muchos campos

 
Vista:

combinar 2 tablas con muchos campos

Publicado por josé luis lópez rueda - colombia (3 intervenciones) el 12/06/2018 14:01:46
hola buenos dias
Requiero ayuda para unir dos tablas

la tabla 1 tiene 100 mil registros y 20 columnas y la tabla 2 tiene 200 mil registros y 80 campos o columnas

la idea es crear una tercera tabla con la unión de las dos tablas donde los registros de la tabla 1 son los que crean la tabla 3 pero en la nueva tabla deben estar los 20 campos de la tabla 1 mas los 80 campos de la tabla 2

en la tabla 1 hay 3 campos que son la llave de la tabla 2.

select * from tabla1 inner join tabla2 on tabla1.clasedct = tabla2.clasedct and tabla1.document = tabla2.document into cursor nueva_tabla

sin embargo me quedan los 100 campos pero no me queda el verdadero nombre de los 3 campos en común me quedan clasedct_a , clasedct_b, document_a, document_b

1. Pregunta: la consulta queda bien si no quiero nombrar los 100 campos en la lista de campos?
2. pregunta: cómo hago para que me salga clasedct, document

mil gracias
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
Imágen de perfil de Abel
Val: 642
Plata
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

combinar 2 tablas con muchos campos

Publicado por Abel (286 intervenciones) el 13/06/2018 18:52:32
Para evitar que se renombren los campos comunes podrías hacer lo siguiente:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
&& Esto leerá los nombres de campos y los formará para crear la estrucutura del Cursor.
Local cEstructura, nSuma
cEstructura = ""
Set Exact On
Use Tabla1
Afields(aCampos)
nSuma = Alen(aCampos,1)
For nX=1 To nSuma
	Dimension aEstruct(nX)
	cEstructura = cEstructura+Iif(Empty(cEstructura),"",",")+"a."+aCampos(nX,1)
Next
Use Tabla2
Afields(aCampos)
For nX=1 To Alen(aCampos,1)
	If Ascan(aCampos,aCampos(nX,1),1,1,1)=0
		nSuma = nSuma+1
		Dimension aEstruct(nSuma)
		cEstructura = cEstructura+",b."+aCampos(nX,1)
	Endif
Next
Set Exact Off
 
Select 0
Select &cEstructura From Tabla1 a inner join Tabla2 b ;
   On a.clasedct=b.clasedct And a.document=b.document ;
    Into cursor nueva_tabla
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