Skip to main content
Announcements
Qlik Connect 2024! Seize endless possibilities! LEARN MORE
cancel
Showing results for 
Search instead for 
Did you mean: 
rperezlaso
Contributor III
Contributor III

¿¿Left join inverso ??

Buenas tardes,

Tengo el siguiente caso, a ver si lo explico correctamente : 

TABLA1 - LECTURAS : 

ID fecha
a123412/05/2019
a123513/05/2019
a123614/05/2019
a123715/05/2019

 

TABLA2 - PROCESO : 

IDFECHADATO EXTRA
a123412/05/201921321A123
a123513/05/201921321A124
a123614/05/201921321A125
a123715/05/201921321A126
a123816/05/201921321A127
a123917/05/201921321A128
a124018/05/201921321A129
a124119/05/201921321A130
a124220/05/201921321A131

 

lo que necesito es eliminar los resultados de la tabla1 en la tabla2 : 

IDFECHA
a123816/05/2019
a123917/05/2019
a124018/05/2019
a124119/05/2019
a124220/05/2019
1 Solution

Accepted Solutions
albert_guito
Creator II
Creator II

podrias usar una clausula Where Not Exists(llave primaria)

Ag+
Ag+

View solution in original post

7 Replies
albert_guito
Creator II
Creator II

podrias usar una clausula Where Not Exists(llave primaria)

Ag+
Ag+
jmmayoral3
Creator
Creator

Hola RPerezLaso.

Para borrar las filas de una tabla que existen en otra puedes usar la función KEEP. Seguiras manteniendo ambas tablas. Depués de la depuración, si te sobra alguna puedes borrarla con DROP TABLE.

 

en tu caso bastará con hacer: 

LEFT KEEP (LECTURAS)
LOAD * RESIDENT PROCESO;

 

rperezlaso
Contributor III
Contributor III
Author

Buenas tardes Jmmayoral3,

de este modo que comentas no me sale el resultado que necesito.

un saludo.

rperezlaso
Contributor III
Contributor III
Author

Buenas tardes,

el resultado lo he conseguido de la siguiente manera :

LECTURA:
LOAD
ID,
fecha
FROM [lib://tttt/Libro1.xlsx]
(ooxml, embedded labels, table is [lecturas]);


PROCESO:
LOAD
ID,
FECHA,
"DATO EXTRA"
FROM [lib://tttt/Libro1.xlsx]
(ooxml, embedded labels, table is PROCESO)
where not Exists(ID);

DROP TABLE LECTURA;
rperezlaso
Contributor III
Contributor III
Author

Hola Albert_guito

me podrias explicar el uso del where not exist()

ya que si lo uso con residents, no me funciona. 

 

un saludo.

albert_guito
Creator II
Creator II

Hola,

 

Lamento el retraso disculpa he estado de viaje.

La idea es cargar la tabla 1 y usar su llave primaria para excluirla en la tabla 2 como bien has puesto tu codigo.

Es interesante forzar la no concatenacion de tablas para evitar problemas (se suele hacer con tablas de la misma estructura). Esto suele pasar con tablas residentes en las que se limitan los campos.

Si te da problemas una carga residente ponme el codigo y le echo un vistazo.

Un saludo

 

 

 

Ag+
rperezlaso
Contributor III
Contributor III
Author

Buenas @albert_guito,

No te preocupes, Al final como lo he solucionado ha sido cambiando el nombre de la cable principal en la residente ej:

 

tabla1: 
LOAD
ID,
DATO
resident xxx

tabla2: 
LOAD
ID as IDS,
DATO
resident xxx

where not exist (ids,id)