Como unir varias tablas con la misma estructura

3,034 views
Skip to first unread message

Gabriel Sandoval

unread,
Nov 13, 2010, 4:45:10 AM11/13/10
to Comunidad de Visual Foxpro en Español
Hola amigos de toda la comunidad, primero que nada quiero agradecer a
todos por toda la ayuda que me ha sido proporcionada, da mucha alegria
que existan comunidades como esta.

Bueno, mi duda es la siguiente: tengo tres tablas que tienen la misma
estructura, requiero hacer una consulta para cada una de esas tablas
cumpliendo ciertas condiciones, y el resultado de cada una de las
consultas la mando a una tabla temporal. Esto me genera tres tablas
temporales las cuales necesito unir en una sola tabla final. Para
hacerlo hago un SCAN ENDSCAN en cada una para mandar la informacion a
la tabla final. Mi pregunta consiste en si existe alguna otra forma
mas optima de hacerlo sin necesidad de utilizar el SCAN ENDSCAN ya que
si las tablas son grandes a veces el proceso es tardado.

Agradeciendo de antemano

Gabriel.

Richard Silva

unread,
Nov 13, 2010, 6:42:13 AM11/13/10
to Comunidad de Visual Foxpro en Español
Podrías hacerlo así:

USE csrFinal && Cursor Final
APPEND FROM csrTemp1 && Tabla Temporal 1...n


--
Espero sea de ayuda,

Saludos.

Luis Maria Guayan

unread,
Nov 13, 2010, 6:53:45 AM11/13/10
to publice...@googlegroups.com
SELECT * FROM Tabla1 FROM Condicion1 ;
UNION ALL ;
SELECT * FROM Tabla2 FROM Condicion2 ;
UNION ALL ;
SELECT * FROM Tabla3 FROM Condicion3 ;
INTO CURSOR MiCursor

Luis María Guayán
Tucumán, Argentina
_________________________
http://www.PortalFox.com
Nada corre como un zorro
_________________________

 

Victor Espina

unread,
Nov 13, 2010, 7:49:03 AM11/13/10
to Comunidad de Visual Foxpro en Español
Para complementar la respuesta de Luis Maria, si necesitas identificar
de donde vino cada registro en el cursor final, haces:

SELECT 1 AS origen, * FROM Tabla1 FROM Condicion1 ;
UNION ALL ;
SELECT 2 AS origen, * FROM Tabla2 FROM Condicion2 ;
UNION ALL ;
SELECT 3 AS origen, * FROM Tabla3 FROM Condicion3 ;
INTO CURSOR MiCursor


Saludos

Victor Espina


On 13 nov, 08:53, Luis Maria Guayan <luisma...@portalfox.com> wrote:
> SELECT * FROM Tabla1 FROM Condicion1 ;
> UNION ALL ;SELECT * FROM Tabla2 FROM Condicion2 ;
> UNION ALL ;SELECT * FROM Tabla3 FROM Condicion3 ;
> INTO CURSOR MiCursor
>
> Luis María Guayán
> Tucumán, Argentina
> _________________________http://www.PortalFox.com

Luis Maria Guayan

unread,
Nov 13, 2010, 8:02:59 AM11/13/10
to publice...@googlegroups.com
Fe de erratas: La sentencia correcta es:

SELECT * FROM Tabla1 WHERE Condicion1 ;
UNION ALL ;
SELECT * FROM Tabla2 WHERE Condicion2 ;
UNION ALL ;
SELECT * FROM Tabla3 WHERE Condicion3 ;
INTO CURSOR MiCursor

Faltaba la clausula WHERE ;-)

Luis Felipe Leon Loayza

unread,
Nov 13, 2010, 8:42:34 PM11/13/10
to foro vfp
Puedes utilizar la setencia Select  con Union all , por cada tabla y al final lo envias a una sola tabla
 
> Date: Sat, 13 Nov 2010 01:45:10 -0800
> Subject: [vfp] Como unir varias tablas con la misma estructura
> From: giga...@hotmail.com
> To: publice...@googlegroups.com

HernanCano

unread,
Nov 14, 2010, 12:40:05 AM11/14/10
to Comunidad de Visual Foxpro en Español
use DBF1
append from DBF2
append from DBF3
browse nomodify
use
Reply all
Reply to author
Forward
0 new messages