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: 
walterlh
Creator II
Creator II

UNION QVW DE DISTINTOS SERVIDORES

Hola a todos! soy nuevo en lo que respecta a ésta herramienta y trabajo para una empresa que tiene 3 sucursales dispuestas por el país. Llamémosles Sucursal A, Sucursal B y Sucursal C. Bueno, todas las bases de datos están bajo SQL en Windows server 2000, en tres servidores distintos conectados vía VPN cuyas estructuras son exactamente iguales, los mismos campos, las mismas tablas, etc. Hice 3 documentos qlikView (uno para cada sucursal) es decir, tengo un documento QV (.QVW) para la Sucursal A, otro para la B y otro para la Sucursal C. Obviamente los documento son exactamente iguales al tener todos los campos el mismo nombre y lo único que los difiere uno de otro es que la base se llama distinta. Por ejemplo la tabla "Clientes" en el script se llama "SUCURSAL_A.dbo.CLIENTES" en la Sucursal A, pero en la Sucursal B se llama "SUCURSAL_B.dbo.CLIENTES" y en la Sucursal C "SUCURSAL_C.dbo.CLIENTES". Pero los nombres de los campos son exactamente iguales.

Mi problema es que no puedo hallar la manera de unir estos 3 documentos ya que los directivos quieren ver y analizar la empresa como tal, es decir por ejemplo ver las ventas de Mayo pero de toda la empresa, no dividida por sucursales. Pensé en hacer una tabla llamada Sucursales donde pondría Sucursal_A, Sucursal_B y Sucursal_C pero no se me ocurre mediante qué campo unirlo o como traer en el script las 3 bases de datos de las 3 sucursales. En síntesis necesito hacer un documento que englobe toda la empresa. Quién me ayuda?? gracias.

5 Replies
soniacoprosa
Creator
Creator

Hola Walterlh,

Yo intentaría crear 1 tabla para unir los registros de esas 3 sucursales.

Imagina por ej. que tienes una tabla “Ventas” en cada uno de los proyectos. Podrías crearte una tabla “Ventas” con las ventas de las 3 sucursales concatenando los registros de cada una y añadiendo un nuevo campo que te indique de dónde son las ventas.

Supón que la tabla ventas de cada sucursal, que como dices tienen los mismos campos y nombres de campo, tiene estos campos: Año, Mes, NombreMes, Código, Importe.

// Ventas general de la empresa

// 1º Conectas a la BD correspondiente de la sucursal A

ODBC CONNECT TO ……A;

Qualify *;

Unqualify Año, Mes, NombreMes;

VentasEmpresa:

LOAD

Año,

Mes,

NombreMes,

‘A’ as TipoVenta, // campo nuevo que te permitirá saber que los registros son de la sucursal A

Código,

Importe

;

SQL SELECT *

FROM ……

Where …

;

Unqualify *;

// 2º Conectas a la BD correspondiente de la sucursal B

ODBC CONNECT TO ……B;

Concatenate(VentasEmpresa)

LOAD

Año,

Mes,

NombreMes,

‘B’ as VentasEmpresa.TipoVenta, // campo nuevo que te permitirá saber que los registros son de la sucursal B

Código as VentasEmpresa. Código,

Importe as VentasEmpresa. Importe

;

SQL SELECT *

FROM ……

Where …

;

// 3º Conectas a la BD correspondiente de la sucursal C

ODBC CONNECT TO ……C;

Concatenate(VentasEmpresa)

LOAD

Año,

Mes,

NombreMes,

‘C’ as VentasEmpresa.TipoVenta, // campo nuevo que te permitirá saber que los registros son de la sucursal C

Código as VentasEmpresa. Código,

Importe as VentasEmpresa. Importe

;

SQL SELECT *

FROM ……

Where …

;

Un saludo,

walterlh
Creator II
Creator II
Author

Hola Sonia, si lo ideal sería llegar a tener un campo que mediante un cuadro de texto permita elegir entre sucursal A, B o C. Voy a intentar escribir el código que me dejaste a ver que me sale. Muchas gracias!

soniacoprosa
Creator
Creator

De nada.

etendero
Partner - Creator
Partner - Creator

Hola Walterlh,

Te trascribo lo que te he respondido en la otra consulta que has hecho Re: JOINS DE DISTINTOS SERVIDORES:

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
Author

Hola Emilio, gracias por tu respuesta. Lo que me indicas es lo mismo que me sugiere Sonia? lo voy a intentar, si tu idea se difiere en algo dime entonces lo evaluamos a ver cual es la indicada para mi propósito. Muchas gracias de nuevo!