12 Replies Latest reply: Jun 20, 2011 5:26 AM by Gabriel Vázquez RSS

    Agrupar campos para tener calendario

      Hola a todos.

       

      Tengo 3 tablas(facturas, albaranes cabecera y albaranes detalle) en las que para sacar una fecha de cada uno de ellos hay 3 campos: ejercicio, mes y día. Necesitaría agrupar estos 3 campos de cada tabla y relacionarlos entre si para no crear un cuadro lista para cada tabla. Como lo haría

       

      Gracias de antemano.

        • Re: Agrupar campos para tener calendario
          Miguel Angel Baeyens de Arce

          Hola Gabriel,

           

          Tal como lo veo, lo mejor sería crear una tabla de hechos que concatene las tres a las que te refieres, de las cuales obtengas un sólo campo de fecha que puedas utilizar en el calendario maestro.

           

          Simplificándolo mucho, el modelo podría quedar como

           

          Fact:
          LOAD Codigo,
               MakeDate(Ejercicio, Mes, Dia) AS Fecha 
          INLINE [
          Codigo, Ejercicio, Mes, Dia
          F1000, 2010, 2, 3
          F2000, 2010, 3, 13
          ];
          
          Albaran:
          CONCATENATE LOAD Codigo,
               MakeDate(Ejercicio, Mes, Dia) AS Fecha 
          INLINE [
          Codigo, Ejercicio, Mes, Dia
          A1000, 2010, 2, 3
          A2000, 2010, 3, 13
          ];
          

           

          A partir de aquí, el resultado será una sola tabla que contendrá dos campos, Codigo y Fecha. Con la fecha puedes crear un calendario maestro que utilice mes, trimestre, año, etc. La seleccion en estos campos afectará por igual a albaranes y facturas.

           

          Espero que te sirva.

           

          Miguel Angel Baeyens

          BI Consultant

          Comex Grupo Ibérica

            • Re: Agrupar campos para tener calendario

              Gracias por tu respuesta, lo probaré, pero tengo una duda: éste concatena también el resto de los campos de las tablas?, por que le asignas ese valor a los registros del campo codigo, es aleatorio o tienen algún criterio?.

              No me haría falta crear un calendario maestro ya que solo quiero consultar las ventas por mes y año.

                • Re: Agrupar campos para tener calendario
                  Miguel Angel Baeyens de Arce

                  Hola,

                   

                  El ejemplo es lo más simple, y solo tiene dos campos. Podría tener veinte, treinta o los que fueran. Cuando concatenas una tabla a la anterior, ambas pueden tener cualesquiera número y nombres de campo, y el resultado siempre será una tabla que englobe ambas solo que, si un campo no existe en alguna de ellas, se creará en todas con valor nulo donde no proceda.

                   

                  Esto supone que QlikView tiene que crear la misma estructura de campos para cada tabla, (ya que el resultado final es una sola tabla) y dependiendo del volumen de datos, esto puede demorar mucho la carga. Si ya has preparado el script de manera que todas las tablas contienen los mismos nombres de campo, la tarea es mucho más rápida.

                   

                  En cualquier caso, los campos por los cuales quieras consultar con un sólo cuadro de lista (mes o año en este ejemplo) deberán llamarse igual en todas las tablas, de lo contrario sus valores no se almacenarán en el mismo campo.

                   

                  Espero que sirva.

                   

                  Miguel Angel Baeyens

                  BI Consultant

                  Comex Grupo Ibérica