8 Replies Latest reply: Jul 29, 2014 12:40 PM by Jose Tos RSS

    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.

        • Re: Relacionar varios QVD
          Eduardo Sommer

          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

          • Re: Relacionar varios QVD
            Fernando Keuroglian

            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

            • Re: Relacionar varios QVD
              Jose Tos

              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