Como realizo un union en vfp

4,290 views
Skip to first unread message

ttw

unread,
Aug 29, 2012, 3:30:00 PM8/29/12
to publice...@googlegroups.com
Tengo una consulta estoy realizando un reporte y para ello estoy realizando un Select a las tablas pero las quiero unir y no puedo estoy haciendo lo siguiente:

SELECT a.baba_plan,b.diar_plan,b.diar_comp,a.baba_caso,a.baba_abso,b.diar_asie,b.diar_tmov,b.diar_mnac,b.diar_glos,b.diar_fech,b.diar_caux,b.diar_timo,b.diar_libr,b.diar_fact FROM A UNION ALL B

Edgar Acevedo

unread,
Aug 29, 2012, 3:33:23 PM8/29/12
to publice...@googlegroups.com
Como a mi me ha funcionado es mas o menos así:

SELECT ALL <campos> FROM Tabla1 UNION SELECT ALL <campos> FROM Tabla2 INTO TABLE Table3


Salu2,


Edgar


El 29 de agosto de 2012 13:30, ttw <rorme...@gmail.com> escribió:
Tengo una consulta estoy realizando un reporte y para ello estoy realizando un Select a las tablas pero las quiero unir y no puedo estoy haciendo lo siguiente:

SELECT a.baba_plan,b.diar_plan,b.diar_comp,a.baba_caso,a.baba_abso,b.diar_asie,b.diar_tmov,b.diar_mnac,b.diar_glos,b.diar_fech,b.diar_caux,b.diar_timo,b.diar_libr,b.diar_fact FROM A UNION ALL B

--
 
 
 

Luis Maria Guayan

unread,
Aug 29, 2012, 3:31:05 PM8/29/12
to publice...@googlegroups.com
Parece que no tienes claro el concepto de UNION.

Lo que imagino que tu deseas es combinar las tablas según algún criterio que deberías colocar en la cláusula WHERE

¿Que es lo que deseas lograr?

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

El 29/08/2012 16:30, ttw escribió:
Tengo una consulta estoy realizando un reporte y para ello estoy realizando un Select a las tablas pero las quiero unir y no puedo estoy haciendo lo siguiente:

SELECT a.baba_plan,b.diar_plan,b.diar_comp,a.baba_caso,a.baba_abso,b.diar_asie,b.diar_tmov,b.diar_mnac,b.diar_glos,b.diar_fech,b.diar_caux,b.diar_timo,b.diar_libr,b.diar_fact FROM A UNION ALL B

--
 
 
 

ttw

unread,
Aug 29, 2012, 3:38:38 PM8/29/12
to publice...@googlegroups.com
no es eso sino lo que quiero es juntar todos los campos los de la otra tabla pero no son los mismo campos.
por eso que no hago un inner o left join

edgar suarez kummers

unread,
Aug 29, 2012, 3:45:00 PM8/29/12
to publice...@googlegroups.com
Buenas Ricardo:

Figurarse que se quieren pegar para leer un libro de inglés y uno de alemán ...

Hay que poner una condición WHERE para unirlos por líneas, por ejemplo donde:

en Alemán diga MUTTER y en Inglés diga MOTHER ... cada línea donde coincidan

de lo contrario te puede quedar así:

HITLER era un sacerdote judio que iba a la mezquita del Tibet acompañado de su Jirafa.

Fíjate la condición que pone el maestro L.M. Guayán.

--
 
 
 



--

edgar suarez kummers

Luis Maria Guayan

unread,
Aug 29, 2012, 3:43:52 PM8/29/12
to publice...@googlegroups.com
Para hacer un UNION ambas tablas (o los campos seleccionados) deben tener la misma estructura.

Repito, lo que tu deseas es una combinación con algún criterio que debes especificar en el WHERE

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

--
 
 
 

Fox Learner

unread,
Aug 29, 2012, 4:00:52 PM8/29/12
to publice...@googlegroups.com
Y cual es la diferencia básica de un UNION contra un JOIN ?...

gonzal...@hotmail.com

unread,
Aug 29, 2012, 4:08:25 PM8/29/12
to publice...@googlegroups.com
Fox learner deberias pasarte a otra carrera.

Walter R. Ojeda Valiente

unread,
Aug 29, 2012, 4:13:12 PM8/29/12
to publice...@googlegroups.com
Pregúntale al dios Google, ese tiene todas las respuestas.

Saludos.

Walter.





Date: Wed, 29 Aug 2012 13:00:52 -0700
From: thenewin...@gmail.com
To: publice...@googlegroups.com
Subject: [vfp] Re: Como realizo un union en vfp


Y cual es la diferencia básica de un UNION contra un JOIN ?...
--
 
 
 

Fox Learner

unread,
Aug 29, 2012, 4:18:27 PM8/29/12
to publice...@googlegroups.com
Si verdad..

Fox Learner

unread,
Aug 29, 2012, 4:27:15 PM8/29/12
to publice...@googlegroups.com
Ya le pregunté al triste google ese y me dijo lo siguiente:


Saludos!

edgar suarez kummers

unread,
Aug 29, 2012, 4:33:08 PM8/29/12
to publice...@googlegroups.com
Está clarísimo ....

UNION es un matrimonio, todo lo comparten.
JOIN es como tener una amante, se reúnen apenas para ... 

UNION es básicamente una suma: Encadena a los registros de la consulta A los de la consulta B tal que ambos tengan la misma cantidad de columnas, de los mismos tipos de dato y en el mismo orden de columnas.

JOIN es la junta adyacente entre A y B de modo que se cumpla una condición R entre cada registro de A con otro(s) registro(s) de B. Esta operación devuelve un sólo registro encadenado por cada combinación relacional posible. 

--
 
 
 

Edgar Acevedo

unread,
Aug 29, 2012, 7:16:31 PM8/29/12
to publice...@googlegroups.com
Edgar:

Por haber usado esa analogía ya nadie va a querer usar el UNION y todos van a optar por el JOIN, aunque tengan que cambiar muchas líneas de código...

Salu2,


Edgar Acevedo


--
 
 
 

Ing.Daniel Bojorge

unread,
Aug 30, 2012, 10:30:16 AM8/30/12
to publice...@googlegroups.com
en otra pregunta tuya de este tema, te dije la diferencia.

Con union, podrías tener dos tablas de ventas (actual e históricos) y las unís, osea logistros de una anexás los registros de la otra, para tener una sola tabla de ventas.

Con join, lo que podrías hacer es combinar dos tblas por un campo en común, por ejemplo una tabla de encabezado de factura y el detalle de factura, que tienen un campo en común (puede ser el número de factura) y así tendrías tus datos de encabezado y detalle en un único cursor.


El miércoles, 29 de agosto de 2012, Fox Learner <thenewin...@gmail.com> escribió:
> Y cual es la diferencia básica de un UNION contra un JOIN ?...
>
> --
>  
>  
>  
>

--
Dios L@s Bendiga

Saludos,

Daniel (Con 1 Estrella DCE de Microsoft)
www.debsconsultores.com
Nicaragua

"Si ustedes permanecen unidos a mí, y si permanecen fieles a mis enseñanzas, pidan lo que quieran y se les dará.
(Juan 15:7 DHH)
Bendito el varón que se fía en el SEÑOR, y cuya confianza es el SEÑOR.
(Jeremías 17:7 RV2000)

Jairo Miranda

unread,
Aug 30, 2012, 4:59:44 PM8/30/12
to publice...@googlegroups.com
 1. La unión es entre dos tablas o mas
2. deben tener los mismos campos  o con el AS hacerlos iguales
3.Laclausula where debe estar en el ultimo select 
4.la clausula order by y group by  debe estar en el ultimo select 
5. Al final in Into Cursor, o Table , o array o dbf()
 
Asi:
 
Select tabla1.Campo1  from Base!tabla1; 
  Unión;
        Select tabla2.campo1 from Base!tabla2;
            Where Tabla1.campo1 = "YO ";
                 order by Tabla1.campo1;
                               Into cursor cursor1
 
 JM
Te mando lo que dice el manual de fox
SELECT customer.company, orders.order_id, orders.emp_id ;
   FROM customer, orders ;
   WHERE customer.cust_id = orders.cust_id ;
UNION ;
   SELECT customer.company, 0, 0 ;
   FROM customer ;
   WHERE customer.cust_id NOT IN ;
   (SELECT orders.cust_id FROM orders)
JM

_____________________________________________
De: publice...@googlegroups.com [mailto:publice...@googlegroups.com] En nombre de Fox Learner
Enviado el: miércoles, 29 de agosto de 2012 15:27
Para: publice...@googlegroups.com
Asunto: [vfp] Re: Como realizo un union en vfp

Carlos Miguel FARIAS

unread,
Aug 31, 2012, 8:08:21 AM8/31/12
to publice...@googlegroups.com
Observación:
1. La unión es entre dos tablas o mas (NO)
La union es entre dos select's o mas, cada select podría acceder a la misma tabla con diferente condiciones (por ejemplo: una agrupando y la otra no).
2. deben tener los mismos campos  o con el AS hacerlos iguales (NO)
Los campos no se igualan con el AS.
Cada columna que integra cada uno de los select's incluidos en una unión deben devolver un tipo de dato compatible, ya sea por origen o cast (conversión de un tipo a otro por función apropiada).
Hay que tener en cuenta que el primer select de la UNION, determina el nombre de las columnas devueltas por el SQL (alli deben indicarse con AS el nombre que se requiera).
Es importante tener en cuenta que el primer select al devolver datos, establece el "ancho" de los datos devueltos, por lo que en algunos gestores, si el primer select fija el ancho de una columna en 20 caracteres, los datos de la misma columna con datos de los select susesivos pueden ser truncados (esto pasa en visual foxpro con nativas y en algunos otros SGBD).
3.Laclausula where debe estar en el ultimo select (NO)
4.la clausula order by y group by  debe estar en el ultimo select (NO)
Cada select puede tener una clausula WHERE, GROUP BY, HAVING, la única clausula que de ponerse debe ir al final es la ORDER BY.

5. Al final in Into Cursor, o Table , o array o dbf()
La clausula INTO yo la ubico en el primer select y me funciona
Saludos: Miguel, La Pampa (RA)

--
 
 
 

--
 
 
 

Reply all
Reply to author
Forward
0 new messages