Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

¿Como puedo unir 2 tablas de diferentes bases de datos en script de SQL?

Hola comunidad!

existe alguan forma de unir 2 tablas de diferentes bases de datos en el script de SQL?

tengo las siguientes tablas:

  

Tabla1:Tabla2:
SQL SELECTSQL SELECT
CLASE_MATERIAL,CAJAS,
#MATERIAL,MATERIAL,
#CENTRO,ESTATUS,
STOCK_TOTAL,CENTRO,
VALOR_TOTALPROVEEDOR,
SALIDAS,
FROM BD1;#MATERIAL,
#CENTRO,
#PROVEEDOR

FROM BD2

los campos en comun son #MATERIAL, #CENTRO, y necesito que la tabla dominante sea tabla 1.

saludos

1 Solution

Accepted Solutions
alexis_garcia
Creator II

Hola Agustín,

Por lo que veo tienes 2 opciones:

a.- Crear un campo único de la unión de los 2 campos comunes: #CENTRO&'-'&#MATERIAL y automaticamente se unirán las tablas.

b.- Hacer un JOIN entre las 2 tablas, en concreto LEFT JOIN que predomine Tabla1 sobre Tabla 2.

Saludos.

View solution in original post

7 Replies
alexis_garcia
Creator II

Hola Agustín,

Por lo que veo tienes 2 opciones:

a.- Crear un campo único de la unión de los 2 campos comunes: #CENTRO&'-'&#MATERIAL y automaticamente se unirán las tablas.

b.- Hacer un JOIN entre las 2 tablas, en concreto LEFT JOIN que predomine Tabla1 sobre Tabla 2.

Saludos.

Not applicable
Author

Hola Alexis;

pregunta para la opcion b necesito hacer Previamente el LOAD en el script;?

ejemplo:

Tabla1:

Load

CLASE_MATERIAL,

#MATERIAL,

#CENTRO,

STOCK_TOTAL,

VALOR_TOTAL;

SQL SELECT

CLASE_MATERIAL,

#MATERIAL,

#CENTRO,

STOCK_TOTAL,

VALOR_TOTAL

   FROM BD1


left join( Tabla1)


Tabla2:

load

SQL SELECT

CAJAS,

MATERIAL,

ESTATUS,

CENTRO,

PROVEEDOR,

SALIDAS,

#MATERIAL,

#CENTRO,

#PROVEEDOR

SQL_SELECT

CAJAS,

MATERIAL,

ESTATUS,

CENTRO,

PROVEEDOR,

SALIDAS,

#MATERIAL,

#CENTRO,

#PROVEEDOR

FROM BD2;

saludos

alexis_garcia
Creator II

Hola Agustín,

Creo que no es necesario.

Prueba a hacerlo sin LOAD.

Saludos.

Joaquin_Lazaro
Partner - Specialist II

Hola Agustin:

Este es el código de tu script

Tabla1:

Load

CLASE_MATERIAL,

#MATERIAL,

#CENTRO,

STOCK_TOTAL,

VALOR_TOTAL;

SQL SELECT

CLASE_MATERIAL,

#MATERIAL,

#CENTRO,

STOCK_TOTAL,

VALOR_TOTAL

   FROM BD1


left join( Tabla1)


Tabla2:

load

CAJAS,

MATERIAL,

ESTATUS,

CENTRO,

PROVEEDOR,

SALIDAS,

#MATERIAL,

#CENTRO,

#PROVEEDOR;

SQL_SELECT

CAJAS,

MATERIAL,

ESTATUS,

CENTRO,

PROVEEDOR,

SALIDAS,

#MATERIAL,

#CENTRO,

#PROVEEDOR

FROM BD2;

Debes tener en cuenta que si en la tabla 1 tienes este registro

CLASE_MATERIAL = X

#MATERIAL = A

#CENTRO = Norte

STOCK_TOTAL = 100

VALOR_TOTAL = 1000

y en la tabla 2 estos dos

CAJAS = 25

MATERIAL = A

ESTATUS = Activo

CENTRO = Norte

PROVEEDOR = Pepe

SALIDAS 3

#MATERIA = A

#CENTRO = Norte

#PROVEEDOR = Pepe

CAJAS = 32

MATERIAL = A

ESTATUS = Inactivo

CENTRO = Norte

PROVEEDOR = Manolo

SALIDAS 4

#MATERIA = A

#CENTRO = Norte

#PROVEEDOR = Manolo

La tabla resultante de tu Join tendrá dos registros de estas características :

CLASE_MATERIAL = X

#MATERIAL = A

#CENTRO = Norte

STOCK_TOTAL = 100

VALOR_TOTAL = 1000

MATERIAL = A

ESTATUS = Activo

CENTRO = Norte

PROVEEDOR = Pepe

SALIDAS 3

#PROVEEDOR = Pepe

CLASE_MATERIAL = X

#MATERIAL = A

#CENTRO = Norte

STOCK_TOTAL = 100

VALOR_TOTAL = 1000

CAJAS = 32

MATERIAL = A

ESTATUS = Inactivo

CENTRO = Norte

PROVEEDOR = Manolo

SALIDAS 4

Doblando el valor de STOCK_TOTAL y VALOR_TOTAL

Saludos

Joaquín

Joaquin_Lazaro
Partner - Specialist II

Hola Agustín:

Creo que necesitas esto

Tabla1:

Load

CLASE_MATERIAL,

(#MATERIAL & #CENTRO) as key

STOCK_TOTAL,

VALOR_TOTAL;

SQL SELECT

CLASE_MATERIAL,

#MATERIAL,

#CENTRO,

STOCK_TOTAL,

VALOR_TOTAL

   FROM BD1


Tabla2:

load

CAJAS,

MATERIAL,

ESTATUS,

CENTRO,

PROVEEDOR,

SALIDAS,

(#MATERIAL & #CENTRO) as key,

#PROVEEDOR;

SQL_SELECT

CAJAS,

MATERIAL,

ESTATUS,

CENTRO,

PROVEEDOR,

SALIDAS,

#MATERIAL,

#CENTRO,

#PROVEEDOR

FROM BD2;

Esto te creará dos tablas independientes vinculadas por el campo key y no multiplicará el VALOR_TOTAL por la cantidad de registros en la tabla 2

Saludos

Joaquín

Not applicable
Author

Joaquin:

gracias por la observacion, creo que es muy favorable tu explicación para comprender el funcionamiento y efectivamente la sugerencia que propones para solucionarlo fue de la primera que propuso Alexis, probe sus dos alternativas y pude validar lo que comentas y deacuerdo contigo la primera opcion que propuso Alexis de concatenar el campo fue la mejor opción.

saludos

Not applicable
Author

Alexis gracias como comente con Joaquin tu primera sugerencia fue la indicada y de acuerdo con su explicación es fácil comprender en que momentos podemos usar un join o la union de tablas por campos en comun.

saludos