PDA

View Full Version : Syntaxe MDX



nextoo
07-09-2007, 08:57 AM
Bonjour,
voila mon pb quand je fait :

<Dimension name="Annee">
<Hierarchy hasAll="true" allMemberName="Toutes les annees" primaryKey="id_date">
<Table name="d_date"/>
<Level name="Annee" column="annee" formatString="####" uniqueMembers="false"/>
</Hierarchy>
</Dimension>
et
[Measures].[Montant consommations], [Annee].CurrentMember)*100/([Measures].[Montant consommations], [Annee].CurrentMember.PrevMember)-100)/100

ca marche, mais si je le fait avec une dimension avec plusieurs levels, comme celle ci :
<Dimension name="Temps">
<Hierarchy hasAll="true" allMemberName="Detail Temps" primaryKey="id_date">
<Table name="d_date"/>
<Level name="A" column="annee" formatString="####" uniqueMembers="false"/>
<Level name="M" column="numero_mois_dans_annee" ordinalColumn="numero_mois_dans_annee" nameColumn="libelle_mois" uniqueMembers="false"/>
<level name="Q" column="libelle_periode_bimensuelle" uniqueMembers="false"/>
<Level name="J" column="date_jour" uniqueMembers="false"/>
</Hierarchy>
</Dimension>
je n'arrive pas a trouver la bonne syntaxe mdx, je test un truc du genre :

[Measures].[Montant consommations], [Temps].[A].CurrentMember)*100/([Measures].[Montant consommations], [Temps].[A].CurrentMember.PrevMember)-100)/100

Merci d'avance, a tout ceux qui auront le courage de m'aider, car c'est pas mon premier post sur ce formun, et je n'ai j'amais obtenu de reponce...

BPM_PBE
07-09-2007, 09:38 AM
Bonjour,

Je pense sincèrement que taper une requête MDX, c'est vraiment trop complexe. Le plus simple est d'utiliser soit JPivot soit Freeanalysis pour accéder à votre cube et visualiser la requête MDX ...

Quelle est le contexte d'utilisation de votre requête MDX : pour avoir une source de données pour un rapport ?

Cordialement,
Patrick

nextoo
07-09-2007, 09:47 AM
Heu, oui c'est pour un rapport, je dois afficher des colonnes de progresssion , N sur N-1, comme dis plus top quand la hiearchie temps est sur un seul level pas de pb, parcontre sur plusieurs levels impossible de trouver la bonne syntaxe, pourtant cela dois etre a mon avis un jeux d'enfant, pour quelqu'un ayant eu une formation en MDX, a mon avis je dois revoir la facon de definir ma dimension temps, dommage car a part pour le calcul de progression tout roule bien ...
Merci beaucoup de votre reponce

Ps : j utilse Jpivot, mais on ne peu faire ce genre d'operation dans jpivot que en editant les fichiers jsp(sous mondrian) qui utilse une synthaxe MDX.

BPM_PBE
07-09-2007, 09:50 AM
Bonjour,

Pour les calculs de progression "annuel", Mondrian possède des fonctions de calculs à date (YearToDate), ce qui peut vous donner accès directement à votre information avec un erequête MDX plus simple, en profitant des fonctions natives de Mondrian,

Cordialement,
Patrick

nextoo
07-09-2007, 10:54 AM
Merci , je vais essayer yeartodate, sinon j'ai reussi avec ca :

MEMBER [Measures].[toto3] as '( PARALLELPERIOD([Temps].[A],1,[Temps].[A].currentmember),[Measures].[Montant consommations])' ,format_string="####"