9 Replies Latest reply: Sep 26, 2012 4:01 PM by Luiggi Felalliap RSS

    Load mesual al segundo dia de cada mes

    Julian Rengifo

      Hola a todos una consulta quiero crear un qvd mensual que vaya acumulando ejemplo tengo qvd del periodo 201101 luego quiero hacer un left join del periodo 201102 pero quiero que sea autimatico la carga si alguien tuviera una idea sobre mi particular problema le agradeceria su apoyo, saludos

      Hi all I want to create a query that is accumulated monthly QVD example I have QVD 201101 period then I do a left join for the period 201102, but want it to be automatic. The load if someone had an idea about my particular problem I would appreciate your help me,

      greetings

        • Load mesual al segundo dia de cada mes
          Sebastian Pereira

          Hola Julian,

           

          En primer lugar, deberías hacer un Concatenate entre el qvd almacenado, y la tabla que estás trayendo.

           

          En segundo, intuyo que querés hacer una carga incremental. La idea es:

           

          Ventas:

          Load

               Producto,

               Cliente,

               Ventas,

               Fecha

          From Ventas.qvd

          Order By    

               Fecha asc;    

          Let vUltFecha=Peek('Fecha');

          Concatenate

          SQL Select

               Producto,

               Cliente,

               Ventas,

               Fecha

          From dba.TablaSQL

          Where Fecha >= $(vUltFecha);

          Store Ventas into Ventas.qvd;

           

          Si no tenés QV Server, creás un .bat que contenga:

          [Ruta QV, ejemplo "C:\Archivos de Programa\Qlikview\QV.exe"] -r [Nombre del archivo qvw, por ejemplo Ventas.qvw]

           

          Luego creás un job en el schedule de Windows para el segundo día de cada mes y listo!!

           

          Si tenés QV Server, lo último estuvo de más.

           

          Saludos,

           

          Sebas

            • Load mesual al segundo dia de cada mes
              Julian Rengifo

              Gracias por la correccion claro lo que hago es un concatenate si quiero un incremental pero no por el ultimo registro o la ultima fecha te explico yo hago el cierre contable mensual entonces es una foto en el momento y creo mi qvd luego al siguiente mes hago los mismo la foto del momento y tengo mi segundo qvd asi sucesivamente cada mes y yo ahora lo hago manual mi concatenate lo que deseo es ir concatenando pero automaticamente haber si te aclare el panorama y muchas gracias igual por la atencion prestada.

            • Load mesual al segundo dia de cada mes
              Ferran Garcia Pagans

              No tengo claro si he entendido bien el problema, pero yo lo que haría sería:

               

              // 1-  Crear una tabla con los registros nuevos que quiero añadir a mi QVD

              Ventas:

              sql Select .....

              from ....;

               

              // 2- Concatenar el QVD con todos los registros que ya tenia

              CONCATENATE

              Load .......

              from ventas.qvd

               

              // 3- Almacenar la tabla entera en el QVD

              STORE Ventas into ventas.qvd

                • Load mesual al segundo dia de cada mes
                  Julian Rengifo

                  Hola fgs En teoria es asi como debe funcionar pero como hago para que me capture en paso 2 los qvds generados...saludos

                    • Load mesual al segundo dia de cada mes
                      Ferran Garcia Pagans

                      Julián,

                      En el código anterior, no es necesario cargar más de un QVD. Lo que hace el script es conectarse a la base de datos, traerse los datos nuevos contatenarlos con los datos del QVD y volver a escrivir el mismo QVD.

                       

                      Otra aproximación (que a mi me gusta más) es tener un proceso que mensualmente crea un fichero QVD y tener un fichero QVD por mes; por ejemplo Ventas2012-01.qvd, Ventas2012-02.qvd, ....... El resultado sería que en un directoria tendría un fichero QVD por mes y el mes y año estaría codificados en el nombre del fichero.

                       

                      Luego este código cargaría todos los QVD's del año 2011.

                       

                      Ventas:

                      LOAD Customer,

                           OrderID,

                           Sales,

                           Date

                      FROM

                      [Ventas2011-*.qvd]

                      (qvd);

                       

                      Fíjate en el '*' del nombre del fichero.

                       

                      Saludos, Ferran.

                        • Load mesual al segundo dia de cada mes
                          Julian Rengifo

                          Hola ferran yo tengo dos qvs uno el generador donde extraigo la data mes a mes por ejemplo cierre20111131,cierre20111231,cierre20121231  pero eso lo vengo ahciedno manualmente , luego tengo el otro archivo donde concateno y eso tambien lo hago manulamente: de sta forma lo hago  CIERRES: load fechacierre,importe,cliente.....from cierre20111131.qvd; concatenate(CIERRES)  load fechacierre,importe,cliente.....from cierre20111231.qvd;.................asi lo hago manualamente mes  a mes pero quiero que sea automatico mi cierree....saludos

                            • Re: Load mesual al segundo dia de cada mes
                              Ferran Garcia Pagans

                              Aquí tienes el código que yo pondría en las dos aplicaciones QV.

                               

                              1) Generador de QVD mensuales.  Este código genera de forma automática un qvd para el mes actual.

                              let vHoy= Today();

                              let vAño=Year(vHoy);

                              let vMes=num(Month(vHoy));

                              let vFichero= 'Ventas-'&$(vAño)&'-'&$(vMes)&'.qvd';

                               

                              trace $(vHoy);

                              trace $(vAño);

                              trace $(vMes);

                              trace $(vFichero);

                               

                              Ventas:

                              LOAD Customer,

                                   OrderID,

                                   Sales,

                                   Date

                              FROM

                              [2012-02.xlsx]

                              (ooxml, embedded labels, table is Sheet1);

                               

                              store Ventas into $(vFichero);

                               

                              2) Cargador de QVD's. Este código carga todos los meses en una sola tabla. Qlikview los concatena de forma automática.

                               

                              Ventas:

                              LOAD Customer,

                                   OrderID,

                                   Sales,

                                   Date

                              FROM

                              [Ventas*.qvd]

                              (qvd);

                               

                              Te sirve?

                               

                              Ferran.

                      • Re: Load mesual al segundo dia de cada mes

                        Hola no se puede ordernar cuando sale directo del QVD!

                        se debe hacer un paso intermedio.

                        salu2