IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Jasper Discussion :

[Cube/MDX] Group by "sql"


Sujet :

Jasper

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 57
    Points : 50
    Points
    50
    Par défaut [Cube/MDX] Group by "sql"
    Bonjour,

    je recherche comment en MDX on peut grouper plat les données accessibles d'un noeuds, je m'explique :

    A1->B1->C1
    A1->B1->C2
    A1->B2->C1
    A1->B2->C3

    J'aimerais grouper par "C", ou que je sois, si je suis au niveau A, j'aimerais calculer A1 comme suivant :

    A1 = sum(C1) * sum(C2) * sum(C3)

    En sql, super simple :

    select power (10, sum( log10( C ) )
    from ...my tables....
    Where ...my filters...
    Group by C

    Mais en MDX ???

    Faut-il passer par une measure et un sql dialect ?

    <Measure name="C" datatype="Numeric" formatString="### ###" aggregator="sum" visible="true">
    <MeasureExpression>
    <SQL dialect="mysql">
    aQty GROUP BY myC
    </SQL>
    </MeasureExpression>
    </Measure>

    Et ensuite l'utiliser dans un calculatedMember comme suivant :

    ...Power( 10, Sum( [Etablissement].CurrentMember, log10( C ) ) )...


    Merci d'avance !

  2. #2
    Membre habitué

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 124
    Points : 154
    Points
    154
    Par défaut
    Bonjour,

    Comment dire avec Mondrian on est sur la notion de niveau sur une hiérarhie. Ainsi, pour réaliser le regroupement d'élément d'une même colonne ou d'une même ligne cela consiste à procéder au calcul pour le membre de niveau supérieur.

    Par exemple si vous avez une dimension géographique :
    * Pays
    * Région
    * Département
    * Ville

    Regrouper des membre de Paris, Val de Marne, Seine Saint-denis, [...], Val D'oise ensemble pourrait consister à appeler l'agrégateur pour le membre île-de-France. Autrement cela consiste à avoir des jeu de membres : SET !

    J'espère que ça peut vous aider à y voir plus clair.

    Bien à vous.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 57
    Points : 50
    Points
    50
    Par défaut
    Merci de l'aide, cependant, dans ce cas, une ville ne peut pas être partagé par plusieurs départements régions....Or c'est la mon problème, Je voudrais pouvoir grouper par ville quelque soit le niveau de la hierarchie.

    Et je ne sais pas comment faire dans la déclaration de mon calculatedMember dans le xml/a.


  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 57
    Points : 50
    Points
    50
    Par défaut
    Cette histoire de set m'a travaillé, et je crois que j'ai la solution, il fallait tout simplement créer une dimension, avec valeurs uniques, comprenant un seul niveau de hierarchie pour faire le group by ( dans l'exemple [DimPds] ]) et ciblant les mêmes données que mon autre hierarchie ( dans l'exemple [Etablissement] ), voila en utilisation dans une requete MDX :

    WITH MEMBER
    [Measures].[groupby]
    AS
    Power( 10, Sum( [DimPds].[pds].members, log10( [Measures].[FPY_TOT] ) ) )
    SELECT
    [temps].members ON COLUMNS,
    [Etablissement].members ON ROWS
    FROM
    [EvolutionFPY]
    WHERE
    [Measures].[groupby]

    C'est à prioris à la vue des 1ers résultats la bonne méthode, merci encore.

Discussions similaires

  1. Java requête SQL quote antislash
    Par ritchie23 dans le forum Débuter avec Java
    Réponses: 11
    Dernier message: 01/10/2008, 16h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo