Skip to main content
Announcements
Have questions about Qlik Connect? Join us live on April 10th, at 11 AM ET: SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Relacionar varios QVD

Buenas.

Actualmente tengo 4 archivos (QVD)

Ejemplos:

Archivo1 (Es el archivo Header de Pagos)

A-1     Juan

A-2     Jose

Archivo2 (Es el archivo con los Detalles del Pago)

A-1    1200   FACT   B-1

A-2    2200    FACT   B-2

A- 2   -300     NC      C-1

Archivo3 (Es el archivo que tiene las facturas)

B-1    FACT

B-2    FACT 

Archivo4 (Es el archivo que tiene las notas de crédito)

C-1  NC

C-2  NC

En tal sentido, el archivo 1 y 2 siempre se relacionan por un campo clave, y esto lo pude lograr con un JOIN.

El problema lo tengo al agregar el archivo 3 y 4. En realidad, necesito, que cuando en el archivo 2 se encuentre el valor FACT pues traiga del archivo 3 los valores de la factura, pero cuando en el archivo 2 se encuentre el valor NC ahora traiga valores del archivo 4.

Estuve intentando LEFT JOIN más un Where Exists, pero me genera resultados erróneos.

Saludos.

1 Solution

Accepted Solutions
chematos
Specialist II
Specialist II

Hola Gabriela, lo que puedes hacer es lo siguiente:

Primero cargas el Archivo2, la parte FACT:

Archivo2_FACT:

Load * from Archivo2

where Campo= 'FACT';

//unes el 3 con el 2:

Left join(Archivo2_FACT)

Load * from Archivo3;

//Repites este paso con NC y con el Archivo 4:

Archivo2_NC:

NoConcatenate

Load * from Archivo2

where Campo= 'NC';

//unes el 4 con el 2:

Left join(Archivo2_NC)

Load * from Archivo4;

Ahora puedes concatenarlos en una sola tabla y unirlos con el Archivo1, acuérdate de poner bien los nombres de campos para que se concatene correctamente:

Archivo2:

NoConcatenate

load * resident Archivo2_FACT;

concatenate(Archivo2)

load * resident Archivo2_NC;

Archivo1:

Load * from Archivo1;

left Join(Archivo1)

Load * resident Archivo2;

Drop tables Archivo2_FACT, Archivo2_NC, Archivo2;

Espero que te sirva, saludos,

Jose

View solution in original post

8 Replies
eduardo_sommer
Partner - Specialist
Partner - Specialist

Hi Gabriela,

You can concatenate Archivo3 and Archivo4 and left join Archivo2 with the resulting table of the concatenation (use the same field name for the field containing FACT/NC  and another common name for the field containing B-1, B-2, C-1 and C-3.

Eduardo

fkeuroglian
Partner - Master
Partner - Master

Gabriela como estas?

Prueba esto:

Total:

Load * from

Archivo1

left join(Total)

Load * from

Archivo2

where tipo='FACT'

left join(Total)

load * from

Archivo3

CONCATENATE(Total)

Load * from

Archivo2

where tipo='NC'

left join(Total)

load * from

Archivo3

Espero se entienda el ejemplo, por cualquier consulta capaz que es mas facil que subas tu modelo para que podamos ayudarte

Slds.

Fernando

Not applicable
Author

imagen.png Hola Fernando, acabo de intentar de acuerdo a lo que tu dices, y los resultados no están correctos, ya que trae pagos sin facturas.

Por alguna razón está excluyendo las facturas, te adjunto una imagen de mi código, porque a lo mejor no lo estoy aplicando bien.

fkeuroglian
Partner - Master
Partner - Master

Gabriela, no es la estructura que te pase, faltan join y donde esta el concatenate?

chematos
Specialist II
Specialist II

Hola Gabriela, lo que puedes hacer es lo siguiente:

Primero cargas el Archivo2, la parte FACT:

Archivo2_FACT:

Load * from Archivo2

where Campo= 'FACT';

//unes el 3 con el 2:

Left join(Archivo2_FACT)

Load * from Archivo3;

//Repites este paso con NC y con el Archivo 4:

Archivo2_NC:

NoConcatenate

Load * from Archivo2

where Campo= 'NC';

//unes el 4 con el 2:

Left join(Archivo2_NC)

Load * from Archivo4;

Ahora puedes concatenarlos en una sola tabla y unirlos con el Archivo1, acuérdate de poner bien los nombres de campos para que se concatene correctamente:

Archivo2:

NoConcatenate

load * resident Archivo2_FACT;

concatenate(Archivo2)

load * resident Archivo2_NC;

Archivo1:

Load * from Archivo1;

left Join(Archivo1)

Load * resident Archivo2;

Drop tables Archivo2_FACT, Archivo2_NC, Archivo2;

Espero que te sirva, saludos,

Jose

Not applicable
Author

Hola Fernando, lo que pasa que primero quise intentar con una parte para ver si funcionaba.

Gracias por la ayuda.

Ya quedó solucionado con la respuesta de José María

Not applicable
Author

Gracias José.

Muy buena la solución.

Me será útil para muchas cosas.

Saludos.

chematos
Specialist II
Specialist II

De nada, podrías poner respuesta correcta en vez de útil? Así la discusión aparece como solucionada y no como abierta.

Gracias, suerte.

Saludos