🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: chile.comp.programacion
3 messages
3 total messages Started by Prometeo Fri, 23 Jun 2006 20:44
ORACLE - Select desde dos tablas _PERO_ no JOIN
#1684
Author: Prometeo
Date: Fri, 23 Jun 2006 20:44
36 lines
2481 bytes
Señoras, señores y señoritas....

Me he topado con esta curiosidad, y no sé si por evidente o por
extraña no he conseguido dar con como lograrla... cuando menos de un
modo sencillo.

Resulta que tengo un par de tablas que tienen información similar,
pero no exáctamente la misma. A saber:

- Tabla_Facturas
- Tabla_Boletas

Resulta que quiero hacer un listado con ciertos campos (Nº, proveedor,
rut, etc.) que incluya a ambas... o sea, quiero mezclar ambos
resultados.

El problema es que un simple

Select {atribs} From Tabla_Facturas, Tabla_Boletas

Arroja el producto cartesiano de ambas. Vale decir, si Tabla_Facturas
tiene 5 registros y Tabla_Boletas 4, este select arrojaría 20
registros.

Quiero un select que arroje 9 registros, una simple "suma" de tablas.

¿Alguna idea de como conseguirlo en forma sencilla?

Lo que se me ocurre es hacer un join por el identificador, que para
ambas tablas es el mismo autonumérico por lo que nunca coinciden, y
para cada atributo escoger el de la tabla que no retorne nulo... pero
espero haya algo más simple, porque el listado que debo retornar es
medio complejo (por ciertas evaluaciones y formateo de retorno de
parámetros).

Gracias desde ya por cualquier info!
Re: ORACLE - Select desde dos tablas _PERO_ no JOIN
#1686
Author: Andres E. Hernando
Date: Fri, 23 Jun 2006 22:29
45 lines
1961 bytes
In 23 Jun 2006 13:44:02 -0700, Prometeo wrote: 
> Se?oras, se?ores y se?oritas....
> 
> Me he topado con esta curiosidad, y no s? si por evidente o por
> extra?a no he conseguido dar con como lograrla... cuando menos de un
> modo sencillo.
> 
> Resulta que tengo un par de tablas que tienen informaci?n similar,
> pero no ex?ctamente la misma. A saber:
> 
> - Tabla_Facturas
> - Tabla_Boletas
> 
> Resulta que quiero hacer un listado con ciertos campos (N?, proveedor,
> rut, etc.) que incluya a ambas... o sea, quiero mezclar ambos
> resultados.
> 
> El problema es que un simple
> 
> Select {atribs} From Tabla_Facturas, Tabla_Boletas

	SELECT DISTINCT {atribs}
	FROM   Tabla_Facturas, Tabla_Boletas;

	Con eso deberia bastar, segun san yo.

	Si las columnas en ambas tablas son del mismo
tipo puede que usar un union podria ser mas eficiente:

	SELECT {atribs} FROM Tabla_Facturas
	UNION
	SELECT {atribs} FROM Tabla_Boletas;

	Saludos,
	AHG.



-- 
"Duct tape is like the force. It has a light side, and a dark side, 
 and it holds the universe together..."
				-- Carl Zwanzig

http://www.diferenciados.blogspot.com/ 	 msn:a_hernand.com
BotBait: http://tinyurl.com/oz55e 		 [51]
Re: ORACLE - Select desde dos tablas _PERO_ no JOIN
#1700
Author: illkufe
Date: Tue, 27 Jun 2006 14:07
55 lines
3142 bytes
Select {atribs} From Tabla_Facturas
Union All
Select {atribs} From Tabla_Boletas

Con eso aseguras que se unan todas las la fila, sin el ALL es posible
que por accidente tengas iguales atributos en algunas fila de esas
tablas, por lo tanto, solo devuelve una de ellas, la otra alternativa
es agregarle una tipo al query y axial puedes distinguir cual es boleta
o factura ejemplo:


Select {atribs}, '0' TIPO From Tabla_Facturas
Union
Select {atribs}, '1' TIPO From Tabla_Boletas

Esop.
Enrique

Prometeo wrote:
> Señoras, señores y señoritas....
>
> Me he topado con esta curiosidad, y no sé si por evidente o por
> extraña no he conseguido dar con como lograrla... cuando menos de un
> modo sencillo.
>
> Resulta que tengo un par de tablas que tienen información similar,
> pero no exáctamente la misma. A saber:
>
> - Tabla_Facturas
> - Tabla_Boletas
>
> Resulta que quiero hacer un listado con ciertos campos (Nº, proveedor,
> rut, etc.) que incluya a ambas... o sea, quiero mezclar ambos
> resultados.
>
> El problema es que un simple
>
> Select {atribs} From Tabla_Facturas, Tabla_Boletas
>
> Arroja el producto cartesiano de ambas. Vale decir, si Tabla_Facturas
> tiene 5 registros y Tabla_Boletas 4, este select arrojaría 20
> registros.
>
> Quiero un select que arroje 9 registros, una simple "suma" de tablas.
>
> ¿Alguna idea de como conseguirlo en forma sencilla?
>
> Lo que se me ocurre es hacer un join por el identificador, que para
> ambas tablas es el mismo autonumérico por lo que nunca coinciden, y
> para cada atributo escoger el de la tabla que no retorne nulo... pero
> espero haya algo más simple, porque el listado que debo retornar es
> medio complejo (por ciertas evaluaciones y formateo de retorno de
> parámetros).
> 
> Gracias desde ya por cualquier info!
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads