Saturday, November 19, 2016

Ibm Cognos Media Móvil

Una de las maneras efectivas de resolver este problema es usar ETL para generar una tabla de resumen para las medidas agregadas, como el promedio de 4 semanas, el promedio de 13 meses. Principales ventajas: Fácil de desarrollar el informe, ya que los datos están listos allí Archivado buen rendimiento Principales desventajas: Necesidad de desarrollar ETL, sólo un pequeño porcentaje de los datos generados se utilizará La combinación sigue siendo limitada Este documento está destinado a proporcionar cuatro otras opciones de solución. - Utilizar la tabla de parámetros para resolver el problema de tiempo relativo complicado - Utilizar la consulta unida a nivel de informe para abordar el período de balanceo hasta la fecha - Utilizar media móvil / Total - Crear y ordenar un informe de tabla de referencias cruzadas con diferentes períodos de tiempo Este documento es Para ofrecer otras cuatro opciones de solución. Por cierto, este tema está relacionado con otro tema - Cómo simplificar y centralizar la lógica de la fecha en la ETL y la opción de solución de informes 1 - Gire el tiempo relativo para medir Este concepto no es nuevo, que se propone en las mejores prácticas de IBM Cognos, descargue el documento De www. ibm/developerworks/data/library/cognos/page90 Ventajas: rendimiento mucho mejor y por lo tanto escalable girando la tabla a pantalla completa para unirse con la consulta cosida y hará el desarrollo del informe mucho más fácil. Desventajas: Cuando hay un nuevo requisito, es probable que necesite cambiar el gestor de marcos para agregar un nuevo esquema STAR, lo que hace que Framework sea muy complicado. Un ejemplo similar se proporciona a continuación. El proceso para construir estas medidas: Paso 1: La misma tabla de hechos AGFACTOPSWeeklyInventory, y nombrada con nombre diferente como PriorWeek, 4WeekAgo y BOY (la semana 53 del año pasado). Además, cree una nueva tabla de desplazamiento de fecha para configurar la fecha relativa. Paso 2: Cree varios objetos Modelo basados ​​en todas las tablas de hechos de la capa de base de datos. Paso 3: Construya relación con todas las dimensiones para el objeto Modelo excepto la dimensión de datos. La clave real es unir la tabla de hechos con la tabla CTRLDateOffset para dos casos: Caso 1: unión simple para los datos de punto a tiempo Caso 2: unirse con la expresión utilizando entre para datos agregados, como un resumen de 4 semanas Paso 4: Dimensión y CTRLDateOffset Paso 5: definido un inventario de combinar Hecho en la capa de negocio como se muestra a continuación Nota: Eliminar la tabla CTRLDateOffset, en su lugar, los acomodó en Dim Time. La ventaja es que tendremos un esquema STAR claro, no un copo de nieve. Se eliminó el paso 1 para crear varios objetos de consulta basados ​​en la misma tabla de hechos de la capa de base de datos. En su lugar, sólo hay una tabla de hechos en la capa de base de datos, mientras que hay muchos datos de consulta de modelo de hecho en la capa de negocio. Esto hará el modelo más claro y menos esfuerzo que antes. Opción de solución 2 8211 Usar el mapa de parámetros para resolver el problema de tiempo relativo complicado Para obtener marcos de tiempo complicados, la mejor manera es el mapa de parámetros. El siguiente ejemplo se utiliza para demostrar esta idea. Puede descargar la especificación del informe y la consulta para su revisión en detalle El principal desafío para esta muestra es encontrar el número de la semana correcta cuando la semana es cruzar el final del año. Si no usamos la ETL, medida relativa descrita anteriormente, entonces el mapa de parámetros es probablemente la mejor opción. Una vez que se definen las semanas específicas, los datos pueden filtrarse como exactamente los datos necesarios. Paso 1. Generar consulta para obtener tiempo relativo. Tenga en cuenta que todos los resultados de consulta de detalle se deben convertir como tipo consistente. Seleccione convertir (varchar (50), CYCurrentWeekSD) como PKey. Convertir (int DAYKEY) como Valor de gosales. TIMEDIMENSION where DAYDATE 2007-07-15 UNION seleccione convertir (varchar (50), CYCurrentWeekED) como PKey. (DATEADD (día 6. DAYDATE)) 10000 mes (DATEADD (día 6. DAYDATE)) 100 día (DATEADD (día 6. DAYDATE))) como valor de gosales. TIMEDIMENSION donde DAYDATE in (seleccione DAYDATE de gosales. TIMEDIMENSION donde DAYDATE 2007-07-15) UNION. Paso 2. Cargue la consulta anterior en la capa de base de datos, la configuración de SQL es nativa. Este ajuste le dará flexibilidad para obtener una lógica complicada. Paso 3. Cree un mapa de parámetros basado en la consulta Tiempo relativo Paso 4. Cree todos los cálculos basados ​​en el mapa de parámetros Paso 5. Defina el informe Buen rendimiento, ya que puede filtrar el conjunto correcto de datos Muy flexible para definir fechas y su título, Como la sentencia SQL puede generar Can8217t o muy difícil de manejar período de balanceo, especialmente para el gráfico de tendencias Opción de solución 3 8211 Utilizar la consulta unida a nivel de informe para tratar el período de balanceo hasta la fecha de emisión Para obtener datos de tendencia para el período de balanceo, . Por favor, descargue la especificación del informe para su revisión en detalle En caso de que usted pueda cambiar ETL y el administrador de Framework, tiene que darse cuenta de una idea en el estudio de informes. La consulta en el estudio de informes se utilizará para imitar el concepto para pasar el tiempo relativo a las medidas. Paso 1: Definir la consulta básica con datos para cada mes Paso 2: Unirse a esta consulta por sí mismo como golpe Con join: qMonthYTD. Month (numérico) ltqMonth. Month (numérico) El ingreso YTD es qMonthYTD. Revenue Otra forma es crear el tiempo de compensación Paso 2: Unir datos de mes con desplazamiento de tiempo Con unirse: qMonth. Month clave entre qTimeOffsetYTD. BeginMonth y qTimeOffsetYTD. EndMonth Ingresos YTD: qMonth. Revenue Solution option 4 8211 Uso Promedio móvil / Total Si el período es definido claramente, entonces mover total es la buena solución para resolver la tendencia de emisión. Por favor, consulte el ejemplo a continuación y la especificación de descarga para el detalle Total de 4 meses: Total móvil (ingresos, 4) total de 4 meses para la región: total móvil (ingresos, 4 por región) Opción de solución 5 8211 hacer y clasificar un informe de tabla cruzada con tiempo diferente Períodos Contexto Vea por favor el informe abajo Se solicita clasificar por columnas así como filas basadas en ingresos de YTD Hay muchas maneras de hacerlo. Por favor revise mi antiguo post Cómo manejar el tiempo relativo (modelo relacional enfocado) como referencia. La solución descrita a continuación puede considerarse como otra opción. Por favor, descargue la especificación del informe para la revisión de detalle Unión de todos los datos como una sola consulta para la tabla de referencias cruzadas La idea es hacer que el período de tiempo como columnas X. Necesitamos asegurarnos de que su consulta es union able, lo que significa que necesitamos lanzar elemento de datos como tipo de muestra Definir columnas de orden para la dirección X e Y Para ordenar las columnas de período de tiempo, o dirección X, se define una columna XSort para dar una Número basado en cualquier período, o grupo de período. Para ordenar filas, o dirección X, se define una columna YSort para obtener el valor de la medida. Notas Esta solución es la adecuada cuando hay grandes datos, las columnas se determinan dinámicamente. Sin embargo, es un poco difícil de formatear. Función de agregación apropiada, basada en el tipo de agregación de la expresión. Sintaxis: agregado (expr auto) agregado (expr para todos los expr) agregado (expr para el informe) Count: Devuelve el número de elementos de datos seleccionados excluyendo valores NULL. La palabra clave distinct está disponible para la compatibilidad con versiones anteriores de las expresiones utilizadas en versiones anteriores del producto. Sintaxis: count (distinto expr auto) count (distinto expr para todos los expr) count (distinto expr para el informe) Ejemplo: count (gosalesgoretailers. Products. Product name) - (o / p: 41, 15, 21) Tipo para toda la línea de productos) ------------ (o / p: 5, 4, 4) Cuenta (tipo de producto para cualquier línea de producto) ----------- ( O / p: 5, 4, 4) Count (Tipo de producto para Report) ------------------- (o / p: 21 para todos) Máximo: Devuelve el valor máximo Valor de los elementos de datos seleccionados. La palabra clave distinct está disponible para la compatibilidad con versiones anteriores de las expresiones utilizadas en versiones anteriores del producto. Sintaxis: maximum (distinto expr auto) máximo (distinto expr para todos los expr) máximo (distinto expr para el informe) Ejemplo: maximum (Quantity) -------------------- ------------ (o / p: 962) máximo (Cantidad para todos los gosalesgoretailers. Products. Product type) (o / p: 344,4368230) Máximo (Cantidad para cualquier gosalesgoretailers. Products. Product (O / p: 44,78,8230.) Máximo (Cantidad para el informe) ------------------- (o / p: 1,646) Mínimo: Devuelve el Valor mínimo de los elementos de datos seleccionados. La palabra clave distinct está disponible para la compatibilidad con versiones anteriores de las expresiones utilizadas en versiones anteriores del producto. Sintaxis: minimum (distinto expr auto) mínimo (distinto expr para todos los expr) mínimo (distinto expr para el informe) Ejemplo: minimum (Quantity) -------------- (o / p: 43,330 , 142,150) Mínimo (Cantidad para todo tipo de producto) ---- (o / p: 6, 4, 4, Mínimo (Cantidad para el informe) ----------------- (o / p: 2) Movimiento-Promedio: Devuelve el valor añadiendo los valores al anterior basado en el numericexp. Sintaxis: media móvil (numericexpr. Numericexpr en prefiltro de exp) media móvil (prefijo de numericexpr numericexpr distinto). Para expr para auto de informe Ejemplo: media móvil (Cantidad, 2) (o / p: Cantidad Promedio móvil 198,676 198,676 345,096 271,886 95,552 220,324 96,246 95,889 Moving-Total: Devuelve el valor agregando los valores al anterior basado en numericexp Sintaxis: total móvil (numericexpr. Numericexpr en prefiltro de exp) total móvil (prefijo numericexpr. Numericexpr distinto) para expr para informe automático Ejemplo: total móvil (Cantidad, 3) Salida: Cantidad Promedio móvil 198,676 198,676 345,096 543,772 95,552 639,324 96,246 536,894 Porcentaje: Devuelve el porcentaje del valor total de los elementos de datos seleccionados Sólo se utiliza en fuentes de datos relacionales Sintaxis: porcentaje (numericexpr al prefiltro de la cuenta) porcentaje (prefijo de numericexpr distinto). - (o / p: 16, 12, 10.) Percentil: Devuelve un valor, en una escala de cien, que indica el porcentaje de una distribución que es igual o inferior a los elementos de datos seleccionados. Sintaxis: percentil (numericexpr en prefilter de exp) percentil (prefiltro numericexpr distinto). Para expr para auto de informe Ejemplo: percentil (cantidad) -------- (o / p: 100, 95, 90) Cuándo: Devuelve el rango de un valor para un rango que especifique. Devuelve números enteros para representar cualquier rango de rangos, como 1 (más alto) a 100 (más bajo). Sintaxis: cuantil (numericexpr, numericexpr en prefilter de exp) cuantil (numericexpr distinto, prefiltro numericexpr). Para expr para report auto Ejemplo: Quantile (Cantidad, 5) --- (o / p: 1, 2, 3, 4, 5) Quartile: Devuelve el rango de un valor, representado como números enteros de 1 (más alto) a 4 (Menor), en relación con un grupo de valores. Sintaxis: cuartil (numericexpr en prefilter de exp) cuartil (prefiltro numericexpr distinto). Para expr para auto de informe Ejemplo: cuartil (Cantidad) ---------- (o / p: 1, 2, 3, 4) Devuelve el valor de rango de los elementos de datos seleccionados. Si dos o más filas empatan, entonces hay una brecha en la secuencia de valores clasificados (también conocido como clasificación olímpica). Sintaxis: rank (expr sortorder en el prefilter de exp) rank (distinto expr sortorder prefilter). Para expr para report auto Ejemplo: rank Cantidad) ----------------- (o / p: 1, 2, 3, 4, 8230 ..) Devuelve el promedio de ejecución por fila (Incluyendo la fila actual) para un conjunto de valores Sintaxis: average-running (numericexpr en prefilter de exp) average-running (prefiltro numericexpr distinto). Para expr para auto de informe Ejemplo: promedio de ejecución Cantidad) ------------ (o / p: Cantidad Promedio móvil 198,676 198,676 345,096 271,886 95,552 213,108 96,246 183,892 Cuenta corriente: Devuelve el recuento de ejecución por fila Sintaxis: run-count (numericexpr en prefilter de la cuenta) count-run (prefijo distinto de numericexpr). Para expr para auto de informe Ejemplo: running-count (Cantidad) - (o / p: 1, 2, 3, 8230) Devuelve una diferencia de ejecución por fila, calculada como la diferencia entre el valor de la fila actual y la fila anterior (incluyendo la fila actual) para un conjunto de valores. Sintaxis: running-difference (numericexpr en el prefilter de exp) running-difference (distinto numericexpr prefilter).para expr para report auto Ejemplo: running-difference (Cantidad) - (o / p: null, 146420, -249,544, 8230 ..) ) Devuelve el máximo de ejecución por fila (incluyendo la fila actual) para un conjunto de valores Sintaxis: running-maximum (numericexpr en prefilter de exp) running-maximum (prefiltro numericexpr distinto). Para expr para auto de informe Ejemplo: running-maximum (Cantidad) --------- (o / p: 198676, 345096) Devuelve el mínimo de ejecución por fila (incluida la fila actual) para un conjunto de valores. Sintaxis: running-minimum (numericexpr en prefilter de exp) running-minimum (prefiltro numericexpr distinto). Para expr para report auto Ejemplo: running-minimum (Quantity) --------- (o / p: 198676, 198676, 95552,) Devuelve un total de ejecución por fila (incluyendo la fila actual) para un conjunto de valores. Sintaxis: running-total (numericexpr en prefilter de exp) running-total (prefijo de numericexpr distinto). For expr for report auto Ejemplo: running-total (Cantidad) ----------- (o / p: 198676, 5437728230.) Devuelve la desviación estándar de los elementos de datos seleccionados. La palabra clave distinct está disponible para la compatibilidad con versiones anteriores de las expresiones utilizadas en versiones anteriores del producto. Sintaxis: desviación estándar (distinta expr auto) desviación estándar (distinta expr para cualquier expr) desviación estándar (distinta expr para informe) Ejemplo: desviación estándar (Cantidad) ------ (o / p: 50.628 , 69.098 8230) desviación estándar (Cantidad para todos Tipo de producto) -------- (o / p: 50.628, 69.098, 8230) desviación estándar O / p: 50.628, 69.098 8230) desviación estándar (Cantidad de informe) -------------------- (o / p: 59.70671027) Informe: Desviación estándar Estándar - Deviation pop: Calcula la desviación estándar de la población y devuelve la raíz cuadrada de la varianza de la población. La palabra clave distinct está disponible para la compatibilidad con versiones anteriores de las expresiones utilizadas en versiones anteriores del producto. Sintaxis: estándar-desviación-pop (distinto expr auto) estándar-desviación-pop (distinto expr para todos los expr) estándar-desviación-pop (distinto expr para el informe) (O / p: 50.62240898, 69.09035128) estándar-desviación-pop (Cantidad para cualquier tipo de producto) (o / p: 50.62240898, 69.09035128) : 50.62240898, 69.09035128) desviación estándar-pop (Cantidad por informe) --- (o / p: 59.70601702,) Total: Devuelve el valor total de los elementos de datos seleccionados. La palabra clave distinct está disponible para la compatibilidad con versiones anteriores de las expresiones utilizadas en versiones anteriores del producto. Sintaxis: total (distinto expr auto) total (distinto expr para todo expr) total (distinto expr para informe) Ejemplo: total (Cantidad) --------------- (o / p: 198,676, 345,096) Total (Cantidad para todo tipo de producto) ------- (o / p: 198,676, 345,096) Total (Cantidad para el informe) --------------- (o / p: 2215354) Informe: Variación Total: Devuelve la varianza de los elementos de datos seleccionados. La palabra clave distinct está disponible para la compatibilidad con versiones anteriores de las expresiones utilizadas en versiones anteriores del producto. Ejemplo: varianza (cantidad) ----- (o / p: 2563.244, 4774.5438230) varianza (cantidad para todos los productos) Variación (distinta expr auto) Variable (Cantidad para cualquier tipo de producto) ------- (o / p: 2563.244, 4774.5438230) --------------------- (o / p: 3,564.89125097) Devuelve la varianza de población de un conjunto de números después de descartar los nulos en este conjunto. Sintaxis: variance-pop (distinta expr auto) varianza-pop (distinta expr para cualquier expr) varance-pop (distinta expr para el informe) Ejemplo: variance-pop (Cantidad) ------- (o / 2.562.6282905, 4.773.47663957) variance-pop (cantidad para todos los tipos de producto) ------- (o / p: 2.562.6282905, 4,773.47663957) variance-pop ------ Publicado por Ramana Reddy CH en 22:44 Tema relacionado Moving-total / moving-average functions - (o / p: 2.562.6282905, 4,773.47663957) variance-pop Dando números extraños Pregunta sin respuesta Esta pregunta no ha sido contestada todavía. Darren Gruber dijo: Tengo un informe de tabla de referencias cruzadas bastante simple que calcula una cuenta simple de intersección de criterios por mes y año. (Ver captura de pantalla). El conteo está funcionando bien, pero el movimiento total (count, 3) está produciendo algunos números extraños. Heres cómo el archivo de ayuda describe la función de movimiento total. Sin embargo, como se puede ver en mi captura de pantalla adjunta, su ni siquiera esperar hasta que tiene 3 meses de antes de que da un resultado, que también es incorrecto. Por lo tanto, no se puede hacer nada. Observe también que si count está vacío, el total de movimiento está vacío, aunque puede tener filas de cuenta anteriores para trabajar. He intentado reemplazar el total móvil con el promedio móvil y obtengo resultados similares, aunque números más pequeños. Cualquier ayuda sería muy apreciada. Puedo ser más específico sobre el informe si más información es necesaria. Actualizado el 2012-01-19T07: 58: 22Z en 2012-01-19T07: 58: 22Z por SystemAdmin Cualquiera que esté dispuesto a compartir sus pensamientos, por favor, hágalo. Gracias Los resultados en tu captura de pantalla son correctos. En Grp 1 tiene los valores Enero Febrero Marzo Abril Mayo 198 177 158,5 0 0 Los totales móviles son: Enero: (valor de enero) (sin valores anteriores) 198 0 198 Febrero: (valor de febrero) (valor de enero) (sin precedentes Valores) 177 198 0 375 Marzo: (valor de marzo) (valor de febrero) (valor de enero) 158,5 177 198 533,5 Abril: (valor de abril) (valor de marzo) (valor de febrero) 0 158,5 177 335,5 Mayo: (valor de mayo) Valor) (valor de marzo) 0 0 158,5 158,5 Por lo tanto, el movimiento total parece estar haciendo exactamente lo que debería estar haciendo. Si desea dejar de usar el total móvil cuando la medida se convierte en cero, puede considerar utilizar lógica adicional en su expresión. Usted podría considerar: En una nota lateral, si está utilizando un paquete dimensional, entonces sería mejor utilizar los resúmenes de los miembros en lugar de las funciones de resumen regular destinadas a las consultas relacionales. La expresión para el total móvil con los resúmenes de miembros se vería así: Actualizado el 2014-03-25T08: 36: 22Z en 2014-03-25T08: 36: 22Z por iron-man Los resultados en su captura de pantalla parecen correctos. En Grp 1 tiene los valores Enero Febrero Marzo Abril Mayo 198 177 158,5 0 0 Los totales móviles son: Enero: (valor de enero) (sin valores anteriores) 198 0 198 Febrero: (valor de febrero) (valor de enero) (sin precedentes Valores) 177 198 0 375 Marzo: (valor de marzo) (valor de febrero) (valor de enero) 158,5 177 198 533,5 Abril: (valor de abril) (valor de marzo) (valor de febrero) 0 158,5 177 335,5 Mayo: (valor de mayo) Valor) (valor de marzo) 0 0 158,5 158,5 Por lo tanto, el movimiento total parece estar haciendo exactamente lo que debería estar haciendo. Si desea dejar de usar el total móvil cuando la medida se convierte en cero, puede considerar utilizar lógica adicional en su expresión. Podrías considerar: ltpre classjava dw data-editor-langjava data-pbcklangjava dirltrgtIF (Total de empleados 0) LUEGO (0) OTRO (total móvil, 3 por año, grupo) Usted está utilizando un paquete dimensional, entonces sería mejor utilizar los resúmenes de los miembros en lugar de las funciones regulares de resumen destinados a las consultas relacionales. La expresión del total móvil con los resúmenes de los miembros se vería así: ltpre classjava dw data-editor-langjava data-pbcklangjava dirltrgtaggregate (Total Headcount dentro del conjunto lastPeriods (3, currentMember (Cube. Time Dimension. Time Hierarchy))) lt / pregt Apreciar los insumos. Voy a dar una oportunidad. Gracias Phil WCognos Event Studio Empleo Cognos Event Studio Empleos Demand Trend La tendencia de la demanda de anuncios de trabajo citando Cognos Event Studio como una proporción de todos los puestos de trabajo de TI con un partido en la categoría de base de datos de inteligencia de negocios. Cognos Event Studio Salary Trend Este gráfico proporciona el promedio móvil de 3 meses para los salarios cotizados en trabajos de TI permanentes citando Cognos Event Studio dentro del Reino Unido. Cognos Event Studio 5 principales ubicaciones de trabajo La tabla a continuación examina la demanda y proporciona una guía de los salarios medios citados en los trabajos de TI citando Cognos Event Studio en el Reino Unido durante los 3 meses hasta el 12 de octubre de 2016. La columna de cambio de rango proporciona una indicación de El cambio en la demanda dentro de cada lugar basado en el mismo período de 3 meses del año pasado. (Haga clic en ver estadísticas y tendencias detalladas) Cambio de rango en el mismo período El año pasado Matching Permanent IT Job Ads Salario mediano Last 3 MonthsRunning-total on a cube 27 de octubre de 2010 El concepto de un running-total es un concepto relacional. Dado que una tabla relacional se puede visualizar en sólo dos dimensiones, es muy fácil de entender y visualizar los agregados en ejecución y en movimiento. Por otra parte, una fuente de datos multidimensionales es más compleja. Es posible que desee que el agregado de ejecución en una dimensión, pero no otra. Al intentar utilizar las funciones de agregado en ejecución en un cubo, no puede garantizar resultados consistentes, los desgloses pueden comportarse inesperadamente y el tiempo de procesamiento entero se incrementa, ya que el conjunto de resultados debe procesarse localmente. Afortunadamente, los agregados en ejecución y en movimiento pueden manejarse con funciones puramente dimensionales. Considere la siguiente solicitud. Gráfico de líneas que muestra el total acumulado de ventas para el año actual y los años anteriores. El eje ordinal muestra todos los meses del año en curso. Para comenzar a crear un nuevo informe de gráfico de línea. Cree un Cálculo de consultas en el área Categoría con la siguiente expresión (reemplazando con valores correctos de su propio cubo): Esto devolverá los descendientes de Mes de 2010 (vea una publicación anterior sobre una mejor manera de encontrar el año actual). Cree una expresión de consulta en la serie con la siguiente expresión: total (Cube. Measures. Sales within set periodsToDate (Cube. Date. Date. Year, currentMember (Cube. Date. Date))) Ejecute el informe. Si todo va bien deberías ver la línea creciendo como se esperaba. Es importante entender el mecanismo. La expresión en la serie se procesa para cada elemento en el eje ordinal. La función currentMember llevará al miembro that8217s siendo evaluado. Hasta el 1 de enero la expresión aparecería como: total (Cube. Measures. Sales within set periodsToDate (Cube. Date. Date. Year, Cube. Date. Date. Month-gt: PC. MEMBER.20100101-20100131)) Llega a la categoría de octubre que aparecerá como: total (Cube. Measures. Sales within set periodsToDate (Cube. Date. Date. Year, Cube. Date. Date. Month-gt: PC. MEMBER.20101001-20101031)) Los periodosToDate Función tomará el miembro y creará un conjunto de miembros que comienzan con el primer miembro en el nivel especificado al miembro que se está evaluando. Octubre / 2010 devolverá el set. Enero / 2010, febrero / 2010, marzo / 2010, abril / 2010, mayo / 2010, junio / 2010, julio / 2010, agosto / 2010, septiembre / 2010, octubre / 2010. La demanda siguiente es ver el total de funcionamiento para el año anterior. En una base de datos relacional puede hacer esto con una combinación externa. Aquí es sólo una extensión lógica de la misma expresión. Total (Cube. Measures. Actual dentro de set periodsToDate (Cube. Date. Date. Year, parallelPeriod (Cube. Date. Date. Year, 1, currentMember (Cube. Date. Date)))) Esta es esencialmente la misma expresión, con La función parallelPeriod que envuelve el miembro currentMember. El mismo concepto se puede utilizar para mover totales. En lugar de la función periodsToDate, se utilizarían lastPeriods (). Total (Cube. Measures. Sales dentro de set lastPeriods (5, currentMember (Cube. Date. Date))) Esto siempre creará un total para un conjunto de 5 miembros que terminen con el miembro que se está evaluando. Aquí es un pequeño desafío. Sabiendo esto, cómo hacer un total de ejecución en reversa Compartir esto: Relacionado 57 Responses to 8220Running-total en un cube8221 gracias por las explicaciones claras y precisas. Mi desafío es calcular una varianza mensual utilizando una fuente OLAP (cubo Powerplay). Tengo una tabla de referencias cruzadas con meses de columnas, las filas son 3 medidas (este año real, este año el presupuesto, el año pasado real) I8217d gustaría añadir una 4ta medida que muestra (para todos los meses YTD) el cambio en 8216Actuals8217 desde el mes anterior Es decir, el crecimiento de 20 en agosto de 2010 (cambio entre julio y agosto) 5 crecimiento en septiembre de 2010, 5 declinación en octubre de 2010) etc Julio Agosto Sep Oct Actual 100 120 126 119.7 Mes Chg 20 5 -5 ltltltlt esta es la línea que necesito Para añadir presupuesto 15 16 17 18 I039m un poco nuevo para MDX 8211 dabbling con tuplas, períodos paralelos, prevMember etc 8211 ninguno dándome lo que necesito) (Tengo cierta flexibilidad en el diseño de cubo, si es necesario 8211, pero estoy tratando con muy grande Volúmenes de datos) realmente apreciaría cualquier consejo. Thx, Gill Lo que describes es un movimiento total (bueno, un cambio de movimiento supongo). Esto es realmente mucho más fácil de lograr que el total de ejecución que he descrito. You8217ll necesidad de utilizar un cálculo que se encuentra el 1 8211 (Medida / Mes Mes anterior). Para encontrar la medida del mes anterior, necesitará hacer una tupla en la Medida y el prevMember () del mes en la columna. La función mágica que you8217re busca es currentMember (). CurrentMember devolverá al miembro de la jerarquía especificada que esté sobre la intersección actual. 1 8211 (Medida / tupla (currentMember (Cube. Dim. Time), Measure)) debe ser lo que you8217re buscando. HI Paul 8211 Gran explicación. Puedo hacer la cuenta corriente usando su sugerencia. Me preguntaba si hay alguna forma de implementar ejecutar cuenta en una dimensión donde el nivel ha sido suprimido en el cubo. Dimensión Jerarquía Todos los miembros Miembro1 Miembro1.1 Miembro1.2 Miembro2 Miembro2.1 Miembro2.1.1 Miembro2.1.2 Miembro2.2 Miembro3 Diga que seleccioné Miembro 1.1, Miembro2.1.1, Miembro2.2, Miembro3 en la página de solicitud. Me gustaría hacer una cuenta corriente en el miembro. Es esto un miembro alcanzable? 8211 1 Member2.1.1 8211 2 Member3 8211 3 Ese 8217s un número I8217ve revisado varias veces, pero no puedo pensar en ninguna manera de conseguir que trabaje. Hasta donde yo sé, no hay función MDX que devuelva el índice de un miembro específico en un conjunto (el reverso de item ()). El método que publiqué depende de los miembros contiguos en un solo nivel. Usted puede ser capaz de engañar con un uso inteligente de las funciones de informe. Por ejemplo, puede utilizar rowNumber () para imitar la cuenta de ejecución, y you8217ll podrá utilizar las expresiones de informe para cualquier cálculo que necesite: rowNumber () / Query1.Measure. No es el mejor trabajo alrededor, pero el único que puedo pensar. Hola Pablo 8211 Gracias por la pronta respuesta. Estoy en medio de jugar con una combinación de nivel de número y último período para generar una identificación única y el rango de la identificación única para darme la cuenta. Cálculos dolorosamente largos y esperaba que tu sugerencia sobre el número de fila pudiera hacer el truco. Aunque puedo insertar un número de fila (a través de los objetos insertables) en una lista sin ningún problema, sin embargo, puedo referirlo a un elemento de datos ya que no es un elemento de consulta. Puede usted eleborate en el número de la fila. Muchas gracias nuevamente por su sugerencia. También he estado jugando con la idea de rango. Según la ayuda el tipo de clasificación (olímpico, denso, etc.) se determina por el tipo de cubo utilizado. Rango (1 en el conjunto de prueba) siempre estaba volviendo 1, por lo que parece que rango powercube es, probablemente, utilizando ranking denso. Puede ser posible que otros cubos usen diferentes tipos de clasificación, pero sólo tengo acceso a powercubes en este momento. Cuando se inserta el número de fila en la lista se utiliza una expresión de informe. Dado que la lista está asociada a una consulta específica, puede hacer referencia a elementos de datos de esa consulta dentro de la expresión del informe. Por ejemplo, let8217s dice que su lista tiene Año, Nombre de producto, Total de ventas de Consulta1. Puede poner un cálculo de diseño en la columna de la izquierda con la siguiente expresión: rowNumber () Query1.Sales Total. Esto multiplicará el total de ventas por el número de fila. Si intenta hacer referencia a Cantidad de ventas, que no aparece en la lista, debe incluirla en las propiedades de la lista (bajo las propiedades hay una fila denominada propiedades, esto obliga al elemento de datos a incluirse en el SQL, incluso Si no es una de las columnas de la lista). Hola Paul8230Estoy esperando su ayuda para mi consulta anterior y también podría ayudarme en encontrar rango cuando la columna no está en tabla de referencias cruzadas. Tengo avisos en la página del informe, cuando no estoy seleccionando ninguna pregunta el rango está funcionando correctamente pero cuando selecciono cualquier fila de la orden no está trabajando ... el aviso selecto no está presente como fila o columna en la tabulación cruzada. Parece que está calculando el rango primero y filtrando los valores basados ​​en valores de prompt. Aprecio tu ayuda. Estoy trabajando en un simple informe de referencias cruzadas que utiliza datos relacionales. Soy capaz de calcular el movimiento-total en orden ascendente, hay una manera de calcular el movimiento-total en orden descendente Puede usted por favor darme cualquier sugerencia You8217re que hace probablemente algo como corriente-total (medida para el atributo). 8211 run-total (Measure for Attribute) Gracias por la respuesta Paul En los siguientes ejemplos, movingtotal (measure, 2 para atributo) Ejemplo 1 Los valores son correctos y si quiero obtener los mismos resultados incluso si ordeno la columna de las fechas en el orden de desc que debo hacer (movingtotal función es simplemente calcular medida valor de la medida anterior, independientemente del orden) Ejemplo 1: las fechas están en orden ascendente Jan 1ª mudanza en movimiento 2 de enero en movimiento 3 de enero en movimiento 5 10 100 10 20 2010 30 30 3020 50 B 50 500 50 70 7050 120 80 8070 150 C 100 1000 100 150 150100 250 300 300150 450 Ejemplo 2: las fechas están en orden de orden Jan 3rd movingtotal Jan 2nd movingtotal 1 de enero movingtotal A 30 300 30 20 2030 50 10 1020 30 B 80 800 80 70 7080 150 50 5070 120 C 300 3000 300 150 150300 450 100 100150 250 Espero que mi pregunta sea clara ahora. Cualquier sugerencia sería apreciada It8217s claro, pero muy difícil. Puesto que los totales móviles se aplican en función de la clasificación, primero debe ejecutar ese cálculo y, a continuación, ordenar después. Cree la consulta, A, que tiene el total móvil, luego cree otra consulta, B, basada en A. Puesto que las agregaciones se realizan en A, cualquier clasificación realizada en B no afectará los datos. Hola Paul, intentando calcular la diferencia de carrera para todos los meses de un año. El origen de datos es cubo y el tipo de informe es tabla de referencias cruzadas. Mi medida es Empcount. Quiero conseguir algo así Jan-11 Feb-11 8230 Dec-11 A1 10 20 5 A2 8 13 20 y así sucesivamente. Mi problema surge del hecho de obtener A1, A2, etc de una dimensión, que son los niños de una categoría 8216A8217. Obtengo A1, A2 por una expresión de cálculo (digamos DataItemA) dada por descendientes (filter (cube. DimA. DimA, caption (cube. DimA. DimA) pA), 1). Cualquier ayuda sería muy apreciada. Gracias por adelantado. Espero que esto ayude. Gracias. Deja una respuesta


No comments:

Post a Comment