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

SSAS Discussion :

[SSAS] pb MDX : peut-on variabiliser ?


Sujet :

SSAS

  1. #1
    Membre à l'essai
    Inscrit en
    Août 2006
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 40
    Points : 16
    Points
    16
    Par défaut [SSAS] pb MDX : peut-on variabiliser ?
    Bonjour à tous,

    Je débute en MDX, et je galère !

    Je voudrais créer ce membre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    WITH MEMBER X AS
    ([Measures].[CA_Commande],[Dim CODE].[Numéro CODE].[1017159])
    qui me donne le CA de la commande pour le CODE numéro 1017159. Sauf que ce numéro de CODE n'est pas toujours le même et donc je cherche à variabiliser ce numéro.

    J'ai un autre membre qui récupère le numéro du CODE:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    WITH MEMBER Y AS 
    [Dim CODE].[Numéro CODE TEMOIN].currentmember.name
    Comment je peux remplacer le numéro 1017159 dans mon premier membre par la valeur retourné dans le 2ème membre ?

    Quelque chose comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    WITH MEMBER X AS
    ([Measures].[CA_Commande],[Dim CODE].[Numéro CODE].[Y])
    Merci d'avance,

    Jérémy

  2. #2
    Membre régulier
    Inscrit en
    Août 2010
    Messages
    63
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Août 2010
    Messages : 63
    Points : 80
    Points
    80
    Par défaut
    Bonjour,

    Que cherches-tu à obtenir au final ?
    Parce que dans ton exemple je ne vois pas bien pourquoi tu as besoin de créer de membres calculés.

  3. #3
    Membre à l'essai
    Inscrit en
    Août 2006
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 40
    Points : 16
    Points
    16
    Par défaut
    Je vais essayé de décrire au mieux ce que je chercher à obtenir :

    En fait, pour un Numéro de CODE, j'ai un Numéro de CODE TEMOIN associé.
    Je peux avoir le même Numéro de CODE TEMOIN pour plusieurs Numéros de CODE différents.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    CODE --> CODE TEMOIN
    A --> D
    B --> D
    C --> K
    D --> D
    ...etc...
    Et j'aimerais avoir la possibilité d'afficher sur une même ligne le numéro de CODE, différentes mesures (tel que le CA) et les mêmes mesures pour le Numéro de CODE TEMOIN associé.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    CODE A | Mesure1 de A | Mesure2 de A | Mesure1 de D | Mesure2 de D |
    CODE B | Mesure1 de B | Mesure2 de B | Mesure1 de D | Mesure2 de D |
    CODE C | Mesure1 de C | Mesure2 de C | Mesure1 de K | Mesure2 de K |
    CODE D | Mesure1 de D | Mesure2 de D | Mesure1 de D | Mesure2 de D |
    ...etc...
    Donc mon idée était de mémoriser le Numéro de CODE TEMOIN dans une variable et récupérer le CA pour cette variable, et je n'y arrive pas.

    J'espère avoir été clair.

  4. #4
    Membre régulier
    Inscrit en
    Août 2010
    Messages
    63
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Août 2010
    Messages : 63
    Points : 80
    Points
    80
    Par défaut
    Je ne suis pas encore expert en BI, mais je verrais bien créer une hierarchie entre ton code témoin et ton code.

    Tu pourrais ensuite faire référence à la mesure du code témoin avec quelque chose du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ([Measures].[CA_Commande], 
      Ancestor([Dim CODE].[Numéro CODE].CurrentMember,
      [Dim CODE].[Hierarchie].[Level CodeTémoin]))

  5. #5
    Membre à l'essai
    Inscrit en
    Août 2006
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 40
    Points : 16
    Points
    16
    Par défaut
    Déjà, merci de t'intéresser à mon problème, ça fait plaisir !

    J'avais pensé également à une hiérarchie mais le problème, c'est que ça ne me renvoi pas ce que j'attends :
    (j'avais d'ailleurs posté une discussion à ce sujet intitulé "[SSAS 2K5] Calcul sur 2 niveaux de hierarchie")

    En fait, avec une hierarchie, quand je demande la valeur du CA du CODE TEMOIN, j'obtiens la somme des CA des CODES qui ont ce CODE TEMOIN associé...

    En fait avec une hiérarchie, à partir du Numéro de CODE il faudrait que je remonte un niveau pour avoir le Numéro du CODE TEMOIN et que je redescende un niveau pour avoir les valeurs du Numéro de CODE qui est égal au Numéro de CODE TEMOIN...

    Étant novice, j'ai peut-être mal utilisé cette notion de hiérarchie mais comme je ne m'en sortais pas, je m'étais rabattu sur le système de variables...

  6. #6
    Membre régulier
    Inscrit en
    Août 2010
    Messages
    63
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Août 2010
    Messages : 63
    Points : 80
    Points
    80
    Par défaut
    Ok je vois mieux le soucis.
    Sinon, toujours en gardant la hierarchie tu peux essayer ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    StrToMember("[Dim CODE].[Numéro CODE].&[" +
    ANCESTOR([Dim CODE].[Numéro CODE].CurrentMember,
    [Dim CODE].[Hierarchie].[Level CodeTémoin]).Name
    + "]")
    Le but est de revenir sur l'attribut dimension [Numéro Code] à partir de la hierarchie pour éviter l'aggrégation qu'induit la hierarchie. Celle-ci ne sert à alors qu'à stocker le lien entre le code et le code témoin.

  7. #7
    Membre à l'essai
    Inscrit en
    Août 2006
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 40
    Points : 16
    Points
    16
    Par défaut
    J'essaye ton idée à partir de la hiérarchie, pour l'instant sans succès...

  8. #8
    Membre régulier
    Inscrit en
    Août 2010
    Messages
    63
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Août 2010
    Messages : 63
    Points : 80
    Points
    80
    Par défaut
    Ou sinon en réutilisant ton idée du début du post mais en utilisant la fonction StrToMember :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    WITH MEMBER X AS
    ([Measures].[CA_Commande],
    StrToMember("[Dim CODE].[Numéro CODE].[" +
    [Dim CODE].[Numéro CODE TEMOIN].currentmember.name + "]")
    )
    Je ne suis pas sûr de l'implémentation exacte mais je pense que StrToMember est la fonction qu'il te faut pour variabiliser.

  9. #9
    Membre à l'essai
    Inscrit en
    Août 2006
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 40
    Points : 16
    Points
    16
    Par défaut
    A première vue, ça fonctionne !!

    J'ai utilisé ta version sans hiérarchie et c'est bon ! Il fallait la connaitre cette fonction StrToMember !

    En tout cas, Merci beaucoup !

    Jérémy

    PS: Je fais encore des tests avant de fermer définitivement cette discussion.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [SSAS] [2K5] MDX Membre calculé
    Par jpeg_1980 dans le forum SSAS
    Réponses: 4
    Dernier message: 10/06/2009, 16h57
  2. [SSAS] [2K5] [MDX] effectif du mois n+1
    Par beb1982 dans le forum SSAS
    Réponses: 0
    Dernier message: 07/04/2009, 17h11
  3. [2k5][SSAS] requête mdx
    Par jdmbh dans le forum SSAS
    Réponses: 2
    Dernier message: 25/06/2008, 10h21
  4. Réponses: 0
    Dernier message: 17/06/2008, 12h18
  5. [SSAS][2k5]MDX et Cumul annuel
    Par Jinroh77 dans le forum SSAS
    Réponses: 1
    Dernier message: 31/01/2008, 15h43

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