Qlik Community

Community Corner

Discussion board for questions on how to use Qlik Community and its features.

Announcements
This forum is for questions and information about how to use the Qlik Community.
Please do not post product related questions here.
Select the correct forum from: Qlik Product Forums
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
Valued Contributor II

Re: Relacionar varios QVD

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

8 Replies
eduardo_sommer
Valued Contributor

Re: Relacionar varios QVD

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
Honored Contributor

Re: Relacionar varios QVD

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

Re: Relacionar varios QVD

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
Honored Contributor

Re: Relacionar varios QVD

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

chematos
Valued Contributor II

Re: Relacionar varios QVD

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

Re: Relacionar varios QVD

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

Re: Relacionar varios QVD

Gracias José.

Muy buena la solución.

Me será útil para muchas cosas.

Saludos.

chematos
Valued Contributor II

Re: Relacionar varios QVD

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

Community Browser