Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Buenas tardes,
agradecería vuestra ayuda respecto a un modelo de datos, porque estoy un poco saturado y no acabo de dar con la tecla
Empecé por el Modelo1 que adjunto, el cuál como podéis ver me causaba un loop. Lo solucioné con el Modelo2 que adjunto, desvinculando el campo Periodo entre la Tabla3 y la tabla Calendario.
Este modelo me funcionaba en principio correctamente con los objetos que estaba usando. En el documento, el selector corresponde al campo Periodo con lo que, cuando necesitaba datos de la Tabla3, utilizaba SET para forzar los valores del campo PeriodoObjetivo según lo seleccionado en el campo Periodo.
El problema se me presenta al crear un gráfico y utilizar el campo Periodo como dimensión. El gráfico tiene dos expresiones: la primera se nutre de la Tabla2 y enlaza sin problemas por el campo dimensión, pero la segunda se nutre de la Tabla3 y al no enlazar, no me da el cálculo correcto para cada valor de la dimensión.
Os adjunto el resultado que me da el Chart: el total facturado por subgrupo en cada periodo se calcula bien, pero el objetivo por Subgrupo en cada periodo se calcula mal, ya que da un valor constante en todos los periodos (corresponde a la suma de los diferentes objetivos de los periodos indicados) ya que no consigo que calcula para cada Periodo su correspondiente PeriodoObjetivo.
El Chart utiliza el campo Periodo como dimensión. La variable vPeriod corresponde al periodo actual. Las expresiones que uso son:
Sum({<Periodo = {'<=$(vPeriod)'}, Fecha=>}Importe)
Sum(TOTAL<ClienteGrupo,PeriodoObjetivo>Aggr(
Only({<PeriodoObjetivo = {'<=$(vPeriod)'}>}Objetivo)
,ClienteSubgrupo, ClienteGrupo, PeriodoObjetivo)
)
Si utilizo como dimensión el campo Periodo, la primera expresión se calcula bien y la segunda mal.
Si utilizo como dimensión el campo PeriodoObjetivo la segunda se calcula bien y la primera mal.
Cualquier sugerencia que aportéis será bienvenida!
Gracias de antemano y saludos!
Alex
Hola Chicos;
Yo haría un join para llevar los campos de la tabla 1 primero a la tabla 2 y otro join para llevarlos a la tabla 3; después un drop table de la tabla 1.
En la tabla tres necesitas convertir el periodo objetivo a periodo
Por último haces un concatenate para llevar los datos de la tabla 3 a la tabla 2 y drop table de la tabla 3
...
Ya tienes una tabla con todos los datos vinculada al calendario
Suerte
Joaquín
Hola Alex,
la variable vPeriod a que es igual en tu caso?
Saludos,
Hola Jordi,
La variable vPeriod corresponde al periodo actual, con datos de hoy corresponde a 201601. Los datos de periodo tienen formato YYYYMM.
Un saludo.
Hola Chicos;
Yo haría un join para llevar los campos de la tabla 1 primero a la tabla 2 y otro join para llevarlos a la tabla 3; después un drop table de la tabla 1.
En la tabla tres necesitas convertir el periodo objetivo a periodo
Por último haces un concatenate para llevar los datos de la tabla 3 a la tabla 2 y drop table de la tabla 3
...
Ya tienes una tabla con todos los datos vinculada al calendario
Suerte
Joaquín
Gracias por la sugerencia Joaquín, voy a probarlo a ver que tal funciona y te comento.
En principio prefería mantener las tablas 1, 2 y 3 como entidades separadas ya que la estructura que adjuntaba está muy recortada pero las tablas tienen muchos más campos, con lo que aumentaría los datos cargados significativamente al juntar las tablas. De todas maneras, pruebo y así reviso como operaría.
Un saludo,
Alex
Hola Alex:
Entonces añade dos claves externas en la tabla2 que te permita apuntar al resto de campos de las tablas 1 y 3
Saludos
Joaquín
Buenos días,
al final seguí la sugerencia de Joaquín: llevé los datos de la Tabla1 a la Tabla2, y generé una clave con PeriodoSubgrupo. En la Tabla3 únicamente dejé dos campos PeriodoSubgrupo y Objetivo. Con esto quedó solucionado el problema.
Eso sí, tal y como temía, el volumen de datos en la estructura completa me ha aumentado un 80%. Pese a ello, dado que el rendimiento de la aplicación no se resiente y que no preveo un aumento significativo del conjunto de datos, doy el tema por cerrado.
Muchas gracias por la ayuda Joaquín!
Y a ti también Jortxi!
Un saludo,
Alex
Perfecto Alex, hasta la próxima