4 Replies Latest reply: May 28, 2014 9:40 AM by Javier Florez RSS

    Consulta SAP

      Saludos. Esta consulta SAP funciona perfectamente, pero se tarda mucho en realizarse, porque la tabla KONV es muy extensa.

       

      [KONV]:   // Conditions (Transaction Data)

      Load

         [MANDT] as [MANDT.KONV],

         [KNUMV] as [KNUMV.KONV],

         [KPOSN] as [KPOSN.KONV],

         [KSCHL] as [KSCHL.KONV],

         [KDATU] as [KDATU.KONV],

         [KAWRT] as [KAWRT.KONV],

         [KBETR] as [KBETR.KONV],

         [KMEIN] as [KMEIN.KONV],

         [SAKN1] as [SAKN1.KONV],

         [KWERT] as [KWERT.KONV];

      SQL Select KSCHL KBETR KMEIN MANDT KWERT KAWRT KNUMV KPOSN KDATU SAKN1  from KONV;

      STORE * FROM [KONV] INTO KONV.QVD;

      DROP TABLE [KONV];

       

      Lo que quiero es hacer la misma consulta pero en la clausula WHERE filtrar para el año y mes, por ejemplo si solo necesitara en año 2013 y mes Noviembre:

       

      [KONV]:   // Conditions (Transaction Data)

      Load

         [MANDT] as [MANDT.KONV],

         [KNUMV] as [KNUMV.KONV],

         [KPOSN] as [KPOSN.KONV],

         [KSCHL] as [KSCHL.KONV],

         [KDATU] as [KDATU.KONV],

         [KAWRT] as [KAWRT.KONV],

         [KBETR] as [KBETR.KONV],

         [KMEIN] as [KMEIN.KONV],

         [SAKN1] as [SAKN1.KONV],

         [KWERT] as [KWERT.KONV];

      SQL Select KSCHL KBETR KMEIN MANDT KWERT KAWRT KNUMV KPOSN KDATU SAKN1  from KONV

      Where Year(KDATU) = '2013' AND Month(KDATU) = '11' ;

      STORE * FROM [KONV] INTO KONV.QVD;

      DROP TABLE [KONV];

       

      Pero genera un error:

      Error en la lectura personalizada

      SQL Select KSCHL KBETR KMEIN MANDT KWERT KAWRT KNUMV KPOSN KDATU SAKN1 from KONV

      Where Year(KDATU) = '2013' and Month(KDATU) = '11'

       

      Al parecer no puede extraer el año y/o mes del campo KDATU, o como si no se pudieran colocar funciones en la clausula WHERE.

       

      Alguien a podido hacer este tipo de consultas? Gracias.

        • Re: Consulta SAP
          Fernando Keuroglian

          Hola como estas?

           

          Lo primero que tenes que hacer es ver el formato en que te viene la fecha desde la tabla de sap

           

          una vez que sepas este formato, podes armar una variable en qlikviews, con ese mismo formato que vas a utilizar para hacer el where en la condicion

           

          te muestro un ejemplo:

           

          //Obtengo dia,mes, año

           

          let mes=MID(v3,3,2);

          let dia = left(v3,2);

          let anio= Right(v3,4);

           

           

          let total=anio&mes&dia;

           

          //luego de esto, total vale 20140215

           

          //y esta variable es la que vas a utilizar en el where (esta variable o el mes entero eso es segun tu necesidad)

           

           

           

          SQL Select VTWEG KUNRE FKART WERKS VKBUR VKGRP BUDAT ARTNR TIMESTMP KNDNR RBELN WWVEN ERLOS RABAT ABSMG_ME ABSMG VBELN KURSF PALEDGER VVI00 VVI02 KWSKTO VVC40 VRGAR COPA_AWTYP VVMAT from CE1DIVI

          WHERE COPA_AWTYP ='VBRK' and BUDAT = '$(total)';

           

          cualquier cosa a las ordenes,

           

          Fernando

            • Re: Consulta SAP

              Fernando, primero que toda gracias por la respuesta. Tengo una duda en la defición de las variables (mes, dia, anio) se especifica v3, como la deficinión de las variables es lo primero que se hace, qué se supone que es v3? O es que debo reemplazar ese dato por la fecha que yo quiero?

               

              Gracias.

                • Re: Consulta SAP
                  Fernando Keuroglian

                  Javier como estas, v3 en mi caso es l caso de today()

                   

                  let v3= REPLACE(LTRIM(REPLACE('$(vartoday)', '/', '')), ' ', '0');

                   

                  pero en tu caso seria la fecha  por la queres filtrar , si queres usar un campo de fecha de sap lo tenes que utilizar ahi

                   

                  cualquier cosa avisame

                   

                  abzo

                    • Re: Consulta SAP

                      Fernando, aunque me sirvió tu idea exactamente, si pude crear una solución a mi caso basándome en ella, en resumen si quiero de KONV los registro de un año específico y como no puedo en la clausula WHERE extraer el año porque genera error, por ejemplo Year(KDATU) = '2014', hice lo siguiente en la clausula:

                       

                      WHERE KDATU >= '20140101' AND KDATU < '20150101'

                       

                      Saludos.