Skip to main content
Announcements
Global Transformation Awards! Applications are now open. Submit Entry
cancel
Showing results for 
Search instead for 
Did you mean: 
Anonymous
Not applicable

Filtrar valores cargando una tabla

Buenas,

Tengo la duda de como hacer algo similar a lo que se hace en sql, algo del tipo:

           select *

           from tabla1

            where IDContador  in(

                      select ID

                      from Tabla2

                        where ID = 10000 or IDContador = 21345

            );

En qlikview yo genero una tabla haciendo una consulta en sql

       Tabla1:

       select ID

       from tabla;

Ahora yo genero una tabla, desde un fichero plano, de la forma

Tabla2:

load @1 as ID,

       @2 as campo1

from fichero;

Yo deseo que en tabla2, solo me cargue ciertos ID, y quiero que esos ID, sean solos los que estan en tabla1. No se como hacer algo así en qlikview. He visto que hay una función match pero eso no me permite valores en una tabla, sino un campo entre varios valores

¿alguien se le ocurre alguna idea?

Un saludo

1 Solution

Accepted Solutions
alexdataiq
Partner - Creator III
Partner - Creator III

Has probado utilizando un WHERE EXIST?

Dependerá de tú script y cómo quieras tú modelo de datos pero es algo como:

Tabla1:

       select ID

       from tabla;

 

Tabla2:

load @1 as ID2,

       @2 as campo1

from fichero

WHERE EXIST(ID, ID2) ;

Saludos

View solution in original post

4 Replies
alexdataiq
Partner - Creator III
Partner - Creator III

Has probado utilizando un WHERE EXIST?

Dependerá de tú script y cómo quieras tú modelo de datos pero es algo como:

Tabla1:

       select ID

       from tabla;

 

Tabla2:

load @1 as ID2,

       @2 as campo1

from fichero

WHERE EXIST(ID, ID2) ;

Saludos

jer_2011
Creator II
Creator II

Hola

puedes intentar con la función Right join

agrega este script y observa

LOAD * INLINE [
IdContador, Campo1, Campo2
1, a, aa
2, b, bb
3, c, cc
4, d, dd
5, e, ee
6, f, ff
]
;

right Join

LOAD * INLINE [
IdContador, campo3
1, 1000
3, 2000
5, 5000
6, 6000
]
;

La primer tabla es tu información general, la segunda es la información que solo quieres, toma en cuenta que tienen que tener el mismo nombre los campos IdContador, no puedes tener uno como Idcontador y otra como ID, asi no podría realizar la comparacion, cualquier duda estoy para ayudarte.

tabla Final

Joaquin_Lazaro
Partner - Specialist II
Partner - Specialist II

Jonay, la solución más óptima en cuanto a rendimiento es el Where Exists que propone Alejandro, aunque el Right Join que propone Gerardo también funciona con tablas muy grandes el rendimiento será sensiblemente peor.

Saludos

Joaquín

Anonymous
Not applicable
Author

Buenas tardes,

He probado la opción de Alejandro y me resuelve el problema perfectamente. Muchas gracias por la ayuda

Un saludo