Hola estoy intentando hacer una consulta que le de color a la celda si esta por encima o por debajo de un promedio general calculado.
with member [Measures].[prom] as Avg([Año Académico.Años].Children, [Measures].[Egresados])
member [Measures].[Egre] as [Measures].[Egresados],
FORMAT_STRING = IIf(([Measures].[Egre] > [Measures].[prom]), "|###|style='green'|arrow='up'", "|###|style='red'|arrow='down'")
select NON EMPTY {[Año Académico.Años].[Años].Children} ON COLUMNS,
NON EMPTY {[Measures].[Egre]} ON ROWS
from [cubo_alumnos]
Y siempre me colorea en rojo como en la siguiente imagen
Hola Maxi,
el problema está en la consulta MDX. Hice una prueba en la demo online que tenemos en el SIU (http://pentaho.siu.edu.ar:8080 - usr: demo_univ | pass: demo_univ) sobre el cubo de Alumnos, del esquema SIU-Guarani con el siguiente MDX:
with member [Measures].[prom] as 'Avg([b][Año Academico].Members,[/b] [Measures].[Egresados])'
member [Measures].[Egre] as '[Measures].[Egresados]', FORMAT_STRING = IIf(([Measures].[Egre] > [Measures].[prom]), "|###|style='green'|arrow='up'", "|###|style='red'|arrow='down'")
select NON EMPTY {[Año Academico].Children} ON COLUMNS,
NON EMPTY {[Measures].[Egre]} ON ROWS
from [Alumnos]
Usando [Año Academico].Children no muestra los distintos colores, si lo hace usando [Año Academico].Members
Acá va la consulta que muestra el promedió también apra comparar:
with member [Measures].[prom] as 'Avg([Año Academico].members, [Measures].[Egresados])'
member [Measures].[Egre] as '[Measures].[Egresados]', FORMAT_STRING = IIf(([Measures].[Egre] > [Measures].[prom]), "|###|style='green'|arrow='up'", "|###|style='red'|arrow='down'")
select NON EMPTY {[Año Academico].children} ON COLUMNS,
NON EMPTY Union([Measures].[prom] ,[Measures].[Egre]) ON ROWS
from [Alumnos]
Hola Marcos, probe la consulta y efectivamente hace el promedio utilizando members en vez de children pero lo que pude observar es que de esta manera incluye al promedio el total de la jerarquia.
En el caso que propusiste:
23-26-28-39-67-75-59-94-113-115-132
El promedio da 70.09.
Si incluis el total (771) al promedio da 128.5 pero esto no es correcto.
Me di cuenta ejecutando la segunda consulta y me da el siguiente resultado:
with member [Measures].[prom] as 'Avg([Año Académico.Años].[b]Children[/b], [Measures].[Egresados])'
member [Measures].[Egre] as '[Measures].[Egresados]', FORMAT_STRING = IIf(([Measures].[Egre] > [Measures].[prom]), "|###|style='green'|arrow='up'", "|###|style='red'|arrow='down'")
select NON EMPTY {[Año Académico].[b]Members[/b]} ON COLUMNS,
NON EMPTY Union([Measures].[prom] ,[Measures].[Egre]) ON ROWS
from [cubo_alumnos]
Calcula el promedio bien pero solo lo coloca con el valor de la jerarquia.
Hola Maxi,
probando varias alternativas de consultas encontré una que funciona bien y devuelve lo que estás buscando (http://pentaho.siu.edu.ar:8080 - usr: demo_univ | pass: demo_univ). Utilicé la función Descendants. A continuación adjunto el MDX y la imagen:
with member [Measures].[prom] as 'Avg([b]Descendants([Año Academico].[Todos],[Año Academico].[Año Academico])[/b] , [Measures].[Egresados])'
member [Measures].[Egre] as '[Measures].[Egresados]', FORMAT_STRING = IIf(([Measures].[Egre] > [Measures].[prom]), "|###|style='green'|arrow='up'", "|###|style='red'|arrow='down'")
select NON EMPTY {[Año Academico].children} ON COLUMNS,
NON EMPTY Union([Measures].[prom] ,[Measures].[Egre]) ON ROWS
from [Alumnos]
Mostrando el promedio:
with member [Measures].[prom] as 'Avg(Descendants([Año Academico].[Todos],[Año Academico].[Año Academico]) , [Measures].[Egresados])'
member [Measures].[Egre] as '[Measures].[Egresados]', FORMAT_STRING = IIf(([Measures].[Egre] > [Measures].[prom]), "|###|style='green'|arrow='up'", "|###|style='red'|arrow='down'")
select NON EMPTY {[Año Academico].children} ON COLUMNS,
NON EMPTY Union([Measures].[prom] ,[Measures].[Egre]) ON ROWS
from [Alumnos]