Skip to main content
Announcements
See why Qlik is a Leader in the 2024 Gartner® Magic Quadrant™ for Analytics & BI Platforms. Download Now
cancel
Showing results for 
Search instead for 
Did you mean: 
carlosac
Creator II
Creator II

JOINS DE DISTINTOS SERVIDORES


Buenas, hay alguna forma de hacer un join de 2 tablas que se encuentran en servidores distintos????? He mirado en numerosos foros y no encuentro nada....

1 Solution

Accepted Solutions
Miguel_Angel_Baeyens

Hola,

Sí que es posible, utilizando un script como el siguiente, y apoyándote en ficheros QVD:

CONNECT64 TO [BasedeDatos1];

Tabla1:

LOAD *;

SQL SELECT *

FROM dbo.Tabla1;

STORE Tabla1 INTO Tabla1.qvd (qvd);

DROP TABLE Tabla1;

CONNECT64 TO [BasedeDatos2];

Tabla2:

LOAD *;

SQL SELECT *

FROM dbo.Tabla2;

STORE Tabla2 INTO Tabla2.qvd (qvd);

DROP TABLE Tabla2;

TablaCompleta:

LOAD *

FROM Tabla1.qvd (qvd);

LEFT JOIN LOAD *

FROM Tabla2.qvd (qvd);

Espero que te sirva,

Miguel

View solution in original post

5 Replies
Miguel_Angel_Baeyens

Hola,

Sí que es posible, utilizando un script como el siguiente, y apoyándote en ficheros QVD:

CONNECT64 TO [BasedeDatos1];

Tabla1:

LOAD *;

SQL SELECT *

FROM dbo.Tabla1;

STORE Tabla1 INTO Tabla1.qvd (qvd);

DROP TABLE Tabla1;

CONNECT64 TO [BasedeDatos2];

Tabla2:

LOAD *;

SQL SELECT *

FROM dbo.Tabla2;

STORE Tabla2 INTO Tabla2.qvd (qvd);

DROP TABLE Tabla2;

TablaCompleta:

LOAD *

FROM Tabla1.qvd (qvd);

LEFT JOIN LOAD *

FROM Tabla2.qvd (qvd);

Espero que te sirva,

Miguel

carlosac
Creator II
Creator II
Author

Miguel Angel , de lujo, eres un manitas

walterlh
Creator II
Creator II

Hola, estoy intentando algo parecido pero un poco mas complejo porque son 3 servidores los que intento unir y todos tienen las mismas tablas y los mismos campos. Intenté algo como lo que se trata en esta discusión pero no me funciona, primero probé con el nombre real de cada tabla en este caso "TipodeVentas" ya que los tres servidores tienen esa tabla y necesito unificar como con todas las tablas. Pero al ejecutar el script me dice que no encuentra el archivo .qvd y al mirar en la carpeta donde tengo los archivos están! Pensé que el problema era que tanto las tablas como los campos tienen exactamente los mismos nombres y podía haber algún conflicto así que les cambié el nombre para crear los qvd y volver a ponerle en mismo una vez unificada (en el Left Join) pero me sale el mismo error. Por el momento estoy probando con dos servidores y adjunto el escript en mis dos intentos, espero que me puedan ayudar con esto. Gracias!















ODBC CONNECT TO [192.168.....] (XUserId is TFYJaZFMLA, XPassword is FNERXRFNOTZeGZdF);


TipodeVentas:

LOAD Codigo as TipoVta,

  Codigo as CodigoVta,

     Descripcion AS DescVentas;

SQL SELECT *

FROM DNESTOR.dbo.VTACODTIPOVTA

Where codigo <= 2 and codigo>=1 and Codigo<>0;

STORE TipodeVentas into TipodeVentas (qvd);

DROP Table TipodeVentas; 

 

ODBC CONNECT TO [192.168.....] (XUserId is PGLCSZFMQH, XPassword is ZAHWMZAGHaYQWaFGTJTA);

 

TipodeVentas:

LOAD Codigo as TipoVta,

  Codigo as CodigoVta,

     Descripcion AS DescVentas;

SQL SELECT *

FROM DNGUALE.dbo.VTACODTIPOVTA

Where codigo <= 2 and codigo>=1 and Codigo<>0;

STORE TipodeVentas into TipodeVentas (qvd);

DROP Table TipodeVentas;


TipodeVentas:

LOAD * 

FROM TipodeVentas.qvd (qvd); 

LEFT JOIN

LOAD * 

FROM TipodeVentas.qvd (qvd);

************2do. Intento***************

ODBC CONNECT TO [192.168.....] (XUserId is TFYJaZFMLA, XPassword is FNERXRFNOTZeGZdF);

TipodeVentas1:

LOAD Codigo as TipoVta,

  Codigo as CodigoVta,

     Descripcion AS DescVentas;

SQL SELECT *

FROM DNESTOR.dbo.VTACODTIPOVTA

Where codigo <= 2 and codigo>=1 and Codigo<>0;

STORE TipodeVentas1 into TipodeVentas1 (qvd);

DROP Table TipodeVentas1; 

 

ODBC CONNECT TO [192.168.....] (XUserId is PGLCSZFMQH, XPassword is ZAHWMZAGHaYQWaFGTJTA);

 

TipodeVentas2:

LOAD Codigo as TipoVta,

  Codigo as CodigoVta,

     Descripcion AS DescVentas;

SQL SELECT *

FROM DNGUALE.dbo.VTACODTIPOVTA

Where codigo <= 2 and codigo>=1 and Codigo<>0;

STORE TipodeVentas2 into TipodeVentas2 (qvd);

DROP Table TipodeVentas2;

TipodeVentas:

LOAD * 

FROM TipodeVentas1.qvd (qvd); 

LEFT JOIN

LOAD * 

FROM TipodeVentas2.qvd (qvd);

etendero
Partner - Creator
Partner - Creator

Hola Walterlh,

El problema que creo que tienes es que estás utilizando un Left Join, en vez de un Concatenate.

Realmente, lo que te he podido interpretar, es que necesitas unificar las tres tablas que se llaman iguales y tienen los mismos campos, pero están en distintos servidores. Si es así, tienes que concatenar las tablas, y para eso, pon Concatenate en vez de Left Join, aunque si ni siquiera pones esta palabra reservada, QlikView ya te lo va a concatenar implicitamente al tener los mismos campos.

Pruebalo y ya me dices algo.

Un saludo y espero haberte sido de ayuda.

walterlh
Creator II
Creator II

Muchas gracias, lo voy a intentar y te cuento a ver como me va!