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
Author: Prometeo
Date: Fri, 23 Jun 2006 20:44
Date: Fri, 23 Jun 2006 20:44
36 lines
2481 bytes
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
Author: Andres E. Hernando
Date: Fri, 23 Jun 2006 22:29
Date: Fri, 23 Jun 2006 22:29
45 lines
1961 bytes
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
Author: illkufe
Date: Tue, 27 Jun 2006 14:07
Date: Tue, 27 Jun 2006 14:07
55 lines
3142 bytes
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