Buenas tardes,

A ver si consigo explicarme, que estoy un pelin espeso...

Tengo un cubo con la siguiente dimensión:

<Dimension type="TimeDimension" name="Periodo">
<Hierarchy name="Desde 2004" hasAll="true" allMemberName="Desde 2004" primaryKey="id">
<Table name="dimension_fechas">
</Table>
<Level name="Ano" column="nombre_ano" ordinalColumn="id_ano" type="String" uniqueMembers="true" levelType="TimeYears" hideMemberIf="Never">
</Level>
<Level name="Trimestre" column="nombre_trimestre" ordinalColumn="id_trimestre" type="String" uniqueMembers="false" levelType="TimeQuarters" hideMemberIf="Never">
</Level>
<Level name="Mes" column="nombre_mes" ordinalColumn="id_mes" type="String" uniqueMembers="false" levelType="TimeMonths" hideMemberIf="Never">
</Level>
</Hierarchy>
</Dimension>

Y una medida:

<Measure name="Toneladas" column="peso" aggregator="sum" visible="true">
</Measure>

El caso es que para calcular la variacion trimestral desastacionalizada necesito realizar una serie de cálculos... y entre ellos necesito hallar la media de la suma de todos los primeros trimestres, de los segundos, etc.

He tratado de seguir este ejemplo:

http://cwebbbi.spaces.live.com/blog/cns!7B84B0F2C239489A!1178.entry

En concreto esta parte:

--Find the average deviation for any given month
member measures.averagemonthlydeviation as
avg(
exists(
[Date].[Calendar].[Month].members
, {[Date].[Month of Year].currentmember})
, measures.deviation)

Adaptándolo a mi esquema:

<CalculatedMember name="Desviacion media" formula="Avg(Exists([Trimestre].Members, {[Trimestre].CurrentMember}), [Measures].[Desviacion])" dimension="Measures" visible="true">

... pero claro, no me sale... ¿alguna idea de cómo tendría que ser la formula?

Meto la pata cuando trato de calcular la desviacion media... la del primer trimestre tendría que ser la media de la suma de todos los primeros trimestres.... pero no soy capaz de que sume los trimestres. Por cierto, por si os sirve, la secuencia de cálculo es:

<CalculatedMember name="Media movil anual trimestral" formula="Avg([Periodo].CurrentMember.Lag(2):[Periodo].CurrentMember.Lead(1), [Measures].[Toneladas])" dimension="Measures" visible="true">
</CalculatedMember>
<CalculatedMember name="Media movil centrada" formula="Avg({[Periodo].CurrentMember, [Periodo].CurrentMember.NextMember}, [Measures].[Media movil anual trimestral])" dimension="Measures" visible="true">
</CalculatedMember>
<CalculatedMember name="Desviacion" formula="[Measures].[Toneladas] / [Measures].[Media movil centrada]" dimension="Measures" visible="true">
</CalculatedMember>
<CalculatedMember name="Desviacion media" formula="Avg(Exists([Trimestre].Members, {[Trimestre].CurrentMember}), [Measures].[Desviacion])" dimension="Measures" visible="true">
</CalculatedMember>
<CalculatedMember name="Ajuste" formula="(Sum(Head([Periodo].Members, 4), [Measures].[Desviacion media]) / 4)" dimension="Measures" visible="true">
</CalculatedMember>
<CalculatedMember name="Desviacion media ajustada" formula="[Measures].[Desviacion media] / [Measures].[Ajuste]" dimension="Measures" visible="true">
</CalculatedMember>
<CalculatedMember name="Dato estacionalmente ajustado" formula="[Measures].[Toneladas] / [Measures].[Desviacion media ajustada]" dimension="Measures" visible="true">
</CalculatedMember>