Skip to main content
Announcements
Accelerate Your Success: Fuel your data and AI journey with the right services, delivered by our experts. Learn More
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Cómo obtener datos de 2 BD

Buenas a tod@s,

Necesito hacer una comparativa del presupuesto de gastos entre distintos años. Para ello, necesito recuperar datos de diferentes bases de datos, una por cada año, aunque todas son similares en cuanto a columnas, tipos de datos, etc.

¿Cómo podría hacer esto? No sé bien la forma correcta de conectarme a diferentes bases de datos, ni tampoco cómo podría luego diferenciar entre el datos de la tabla1 y el de la tabla2. ¿Alguna ayuda?

Muchas gracias

16 Replies
alexis_garcia
Creator II
Creator II

Ahhh, vale.

En principio depende de "orígenes de datos" donde están los controladores ODBC o OLE DB dependiendo de la BD a la que te conectes, en Inicio, busca "Orígenes de datos" y configura "DNS de Sistema" con el servidor donde está alojada la BD y user y pass; Prueba la conexión.

Una vez ya validado lo anterior, en el script de Qlikview, en "Conectar" se crea la conexión a la BD que has creado antes el enlace.

Y una vez conectado, le das a "Select" y puedes seleccionar las tablas que deseas.

Un saludo.

Not applicable
Author

Vale, pero con eso me conectaría a la primera base de datos. Hasta ahí todo controlado.

Ahora bien, para conectarme a la segunda base de datos, ¿consiste solo en repetir operación? Quiero decir: le doy a Conectar y a partir de ahí hago Select? Qué pasa con la primera? Seguiría estando conectado o solo hay una conexión activa a la vez? Si sigo conectado, puedo recuperar datos de ambas bases de datos? Como distinto los datos de una y los de otras si las tablas de ambas se llaman igual?

alexis_garcia
Creator II
Creator II

Puedes tener todas las conexiones a BD distintas que quieras.

Tendrías que hacer una nueva conexión en orígenes de datos que apunte al nuevo servidor y con el nuevo user y pass.

Y así ya podrías conectar desde el script y seleccionar las tablas.

Por otra parte, si las tablas se llaman igual, deberías hacer un JOIN, para crear una única tabla.

Un saludo.

Not applicable
Author

Vale perfecto. Y solo una cosa más: cómo puedo distinguir entra las conexiones? Se le pone un alias o algo así? Me explico:

- Tengo una conexión a BD1. BD1 tiene una tabla T1, que tiene una columna llamada Año.

- Tengo otra conexión a BD2. BD2 tiene una tabla T1, que tiene una columna llamada Año.

¿Cómo podría indicar que quiero coger el campo Año de T2 y no el de T1? ¿Es posible?

Muchas gracias por tu ayuda.

alexis_garcia
Creator II
Creator II

Por lo que comentas, que las 2 BD son iguales, deberías de unir sus campos con JOIN, para que por ejemplo, el campo Año de una BD y de la otra, sean el mismo y así para todos los campos, para así poder filtrar o comparar entre distintas fechas.

Podrías comparar fechas con "Set Analysis", como el ejemplo que ha puesto Gustavo o en el propio foro hay muchos más ejemplos.

Un saludo.

Not applicable
Author

Ok, muchas gracias por tu ayuda Alexis!!

alexis_garcia
Creator II
Creator II

Aquí estamos para ayudarnos.

Un placer.