Clipper/FiveWin - Un simple programa

 
Vista:

Un simple programa

Publicado por Lebron (4 intervenciones) el 13/11/2003 19:59:27
Estimados colegas,

Estoy a hacer un lío con una cosa facil!

Yo tengo dos tablas, cada una con un campo caractere (254), yo quiero
combinar todos los registros de la TABLA-A con todos los registros de
la TABLA-B, generando una tercera tabla, TABLA-C, con los dos campos
TEXTO1 e TEXTO2.

Por ejemplo:

Select 1
use TABLAA
Select2
use TABLAB
Select3
use TABLAC
replace TABLAC ->TEXT1 WITH TABLAA->TEXT1, TABLAC -> TEXT2 WITH TABLAB ->TEXT2

Pero esto no ejecuta lo que quiero.

Pido, por favor, su ayuda,

Saludos,

Lebron

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:Un simple programa

Publicado por Armando Estrada Bucio (167 intervenciones) el 14/11/2003 04:08:47
Lebron:

Tal vez el comando JOIN te pueda servir.

Saludos, Armando
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
sin imagen de perfil

RE:Un simple programa

Publicado por Gustavo Alvarez Gambini (274 intervenciones) el 14/11/2003 06:50:06
Armando, qué tal ? :-)
Por simple curiosidad y para aprender algo nuevo.
Cómo sería con el JOIN para lograr algo como lo que quiere nuestro amigo ?
Te agradezco.
Gustavo.
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:Un simple programa

Publicado por Armando Estrada Bucio (167 intervenciones) el 14/11/2003 18:37:31
Como estas Gustvo ? :-)
Complementando, Supongamos lo siguiente:

PROV.DBF Indexado por CODIG
CODIG NOMBRE ESTADO CIUDAD
S1 LOPEZ 20 LONDRES
S2 GARCIA 10 PARIS
S3 BLANCO 30 PARIS
S4 PEREZ 20 LONDRES
S5 SASTRE 30 ATENAS

PED.DBF Indexado por CODIG y PIEZA
CODIG PIEZA CANT CIUPED
S1 P1 300 LONDRES
S1 P2 200 PARIS
S1 P3 400 LONDRES
S1 P4 200 ROMA
S1 P5 100 MADRID
S1 P6 100 PARIS
S2 P2 400 LISBOA
S4 P2 200 PARIS
S4 P4 300 SEVILLA
S4 P5 400 MILAN

El siguiente programa junta las dos bases en una sola

SELECT 1
USE Ped INDEX PedCod ALIAS aa
SELECT 2
USE Prov INDEX CODIG
JOIN WITH aa TO Nuevo FOR Codig=aa->Codig
Use Nuevo
LIST
CLOSE DATABASES
ERASE Nuevo.Dbf
RETURN

El resultado se muestra en el siguiente capítulo :-)
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:Un simple programa

Publicado por Armando Estrada Bucio (167 intervenciones) el 14/11/2003 18:49:32
Saludos Gustavo no Gustvo (perdón) :-)
Continuando el resultado sería:

CODIG NOMBRE ESTADO CIUDAD PIEZA CANT CIUPED
S1 LOPEZ 20 LONDRES P1 300 LONDRES
S1 LOPEZ 20 LONDRES P2 200 PARIS
S1 LOPEZ 20 LONDRES P3 400 LONDRES
S1 LOPEZ 20 LONDRES P4 200 ROMA
S1 LOPEZ 20 LONDRES P5 100 MADRID
S1 LOPEZ 20 LONDRES P6 100 PARIS
S2 GARCIA 10 PARIS P2 400 LISBOA
S4 PEREZ 20 LONDRES P2 200 PARIS
S4 PEREZ 20 LONDRES P4 300 SEVILLA
S4 PEREZ 20 LONDRES P5 400 MILAN

Un Abrazo, Armando
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:Un simple programa

Publicado por Mauricio Arevalo (7 intervenciones) el 14/11/2003 18:01:45
Por si acaso:

JOIN
Crea una nueva base de datos con los registros y campos especificados del archivo que està en uso y un segundo archivo que está abierto en otra área.

Sintaxis:

JOIN WITH <nombrearch> TO <nuevoarch> FOR <condicion>
FIELDS <lista de campos>

Saludos
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
sin imagen de perfil

RE:Un simple programa

Publicado por Gustavo Alvarez Gambini (274 intervenciones) el 14/11/2003 06:47:37
Como te comenta Armando es lo que tendrías que hacer, aunque no lo he intentado nunca hacer creando una base partiendo de dos.
Por si no lo logras con las dos bases a tu programita lo que le está faltando es un
do while TABLAA->( !EOF() ) .and. TABLAB->(!EOF() )
TABLAC->(Append()) // para crear el registro en blanco
REPLACE ......
TABLAA->( DbSkip() ) // para ir avanzando registro en Tablaa
TABLAB->( DbSkip() )
Enddo

**** Nota: esto si las bases origen son de distinta cantidad de registros
se dentendrá cuando la mas pequeña llegue a su fin de fichero
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
sin imagen de perfil

RE:Un simple programa

Publicado por Gustavo Alvarez Gambini (274 intervenciones) el 18/11/2003 10:16:41
Hola Armando :-)
Gracias por el dato. Nunca había utilizado el Join y tenía la duda de si se podía hacer con dos bases.
Saludos.
Gustavo.
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