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: 
Anonymous
Not applicable

cargar datos diferentes bases de datos

Buenos días,

   Tengo un problema, que no consigo encontrar respuesta mirando por los foros. Intento explicarlo

    Parto de que tengo que atacar 2 bd diferentes, por lo que tengo que hacer 2 conexiones, cada una de ellas cuando necesite sacar la información de una u otra

BD1:

     Necesito crear una tabla con ID's únicos

     Tabla1:

              ID: 1,2,...,1000

BD2:

    Necesito crear una tabla pero el campo que es único en tabla1, no es único en tabla2

     

       Tabla2:

           clave     ID    otroCampo

              a        1           1000

              b         2           2000

              c          1           500

              d          4           250

    Mi problema es que hay IDs, que pueden estar en la tabla2, pero no en la tabla1, es decir, yo querria quitar ciertos IDs, en base a que esten en mi tabla1, por ejemplo, dejar fuera el ID = 4, quedando como tabla resultante

            TablaFinal:

           clave     ID    otroCampo

              a        1           1000

              b         2           2000

              c          1           500

     Deberia ser algo asi como load en tabla final   resident Tabla2  where exists(ID) en tabla1, pero no he encontrado ninguna forma, de que algo asi funcione.

    ¿Alguien se le ocurre como hacer algo así?, gracias de antemano

  

Un saludo

Jonay

1 Solution

Accepted Solutions
jmvilaplanap
Specialist
Specialist

Hola,

Puedes cargar ambas tablas y luego unirlas mediante un left join para quedarte sólo con las filas que necesites, por ejemplo

Tabla1:

LOAD *

FROM BDD1;

Noconcatenate

Tabla2:

LOAD *

FROM BDD2;

Noconcatenare

TablaFinal:

LOAD *

Resident Tabla1

left join

LOAD *

Resident Tabla2;

DROP Tables Tabla1, Tabla2;

También puedes hacer el left join directamente cuando leas las tablas al principio.

Un Saludo

View solution in original post

2 Replies
jmvilaplanap
Specialist
Specialist

Hola,

Puedes cargar ambas tablas y luego unirlas mediante un left join para quedarte sólo con las filas que necesites, por ejemplo

Tabla1:

LOAD *

FROM BDD1;

Noconcatenate

Tabla2:

LOAD *

FROM BDD2;

Noconcatenare

TablaFinal:

LOAD *

Resident Tabla1

left join

LOAD *

Resident Tabla2;

DROP Tables Tabla1, Tabla2;

También puedes hacer el left join directamente cuando leas las tablas al principio.

Un Saludo

Anonymous
Not applicable
Author

Buenas Jose Miguel,

      Muchas gracias por la ayuda. Como comentas se puede hacer directamente sin tablas intermedias, haciendo uso de alguno de los diferentes joins. Yo lo había hecho y no "me funcionaba", pero era porque luego en otra tabla que cargaba a posteriori, no tendría en cuenta restricción que queria y me estaban apareciendo ids que en teoria no tenían que aparecer

      En el caso de hacerlo con diferentes tablas, no era necesario el noconcatenate, ya que los campos de ambas tablas no coincidan en todos sus campos

Un saludo

  Jonay