Bonjour,
je débute en mdx/xmla, et autant la prise en main est aisée, et les capacités puissantes autant j'ai du mal à résoudre mon problème :
J'ai un cube qui tourne sur 5 dimensions, la dedans, j'ai 2 mesures, une somme de qté ok, et une somme de qté totales.
J'ai un CalculatedMember qui divise l'un par l'autre pour avoir un %, tout va bien, je mets les couleurs en fonction d'une marge, ça calcule vite, et les résultats sont pertinents, de la balle.
Seulement j'apprends qu'il existe une règle dans mon calcul : A partir d'un certain seuil dans une hierarchie, je ne doit plus diviser les sommes de la population en cours, mais multiplier les % les constituants, et la je bloque, j'ai vu que je pouvais tester le niveau de la hierarchie, voila mon cube avec mon test sur le niveau de hierarchie qui m'interresse :
et voila la dimension et sa hierarchie, en gros en dessous de Poste de saisie, je divise les sommes.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 <Cube name="EvolutionFPY" caption="EvolutionFPY" cache="true" enabled="true"> <Table name="fait_fpy"> </Table> <DimensionUsage source="Temps" name="Temps" caption="Temps" foreignKey="ffy_tps_id"> </DimensionUsage> <DimensionUsage source="Produit" name="Produit" caption="Produit" foreignKey="ffy_pdt_id"> </DimensionUsage> <DimensionUsage source="Etablissement" name="Etablissement" caption="Etablissement" foreignKey="ffy_etb_id"> </DimensionUsage> <DimensionUsage source="Client" name="Client" caption="Client" foreignKey="ffy_dct_id"> </DimensionUsage> <DimensionUsage source="Utilisateur" name="Utilisateur" caption="Utilisateur" foreignKey="ffy_utl_id"> </DimensionUsage> <Measure name="SOMME_QTE_OK" column="ffy_qte_ok" datatype="Numeric" formatString="### ###" aggregator="sum" visible="true"> </Measure> <Measure name="SOMME_QTE_TOT" column="ffy_qte_tot" datatype="Numeric" formatString="### ###" aggregator="sum" visible="true"> </Measure> <CalculatedMember name="FPY_TOT" caption="FPY" dimension="Measures" visible="true"> <Formula> <![CDATA[CASE WHEN [Etablissement].CurrentMember.Level.Name = "Poste de saisie" THEN 4 ELSE [Measures].[SOMME_QTE_OK]/[Measures].[SOMME_QTE_TOT] END]]> </Formula> <CalculatedMemberProperty name="FORMAT_STRING" expression="Iif([Measures].[FPY_TOT] < 1, Iif([Measures].[FPY_TOT] < 0.9, '|0.00|style=red', '|0.00|style=yellow'), '|0.00|style=green')"> </CalculatedMemberProperty> </CalculatedMember> </Cube>
Mais je ne sais pas comment récupérer les résulats des niveaux inférieurs pour les multiplier, ni même si c'est possible.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 <Dimension type="StandardDimension" name="Etablissement" caption="Etablissement"> <Hierarchy hasAll="true" allMemberName="Tous les etablissements" primaryKey="etb_id" caption="Etablissement"> <Table name="dim_etablissement"> </Table> <Level name="Poste de charge" column="etb_pdc" type="String" uniqueMembers="false" levelType="Regular" hideMemberIf="Never" caption="Etablissement"> </Level> <Level name="Poste de saisie" column="etb_pds" type="String" uniqueMembers="false" levelType="Regular" hideMemberIf="Never" caption="Etablissement"> </Level> <Level name="Equipement" column="etb_eqp" type="String" uniqueMembers="false" levelType="Regular" hideMemberIf="Never" caption="Etablissement"> </Level> <Level name="Code Etablissement" column="etb_code" type="String" uniqueMembers="false" levelType="Regular" hideMemberIf="Never" caption="Etablissement"> </Level> </Hierarchy> </Dimension>
Je sèche, si vous avez un indice ou je pourrais chercher, je vous en rendrais milles grâces.
Partager