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 :

Afficher la valeur d'un membre d'une hiérarchie Parent-Child SSAS [2008R2]


Sujet :

SSAS

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2012
    Messages : 2
    Points : 3
    Points
    3
    Par défaut Afficher la valeur d'un membre d'une hiérarchie Parent-Child SSAS
    Bonjour je suis étudiant en stage actuellement donc je possède un niveau de débutant sur SSAS. J'ai fait plusieurs recherches mais je n'ai pas compris les solutions que j'ai trouvé (certainement à cause de mon niveau). Je me suis formé seul pendant 3 mois sur SSIS, SSAS, SSRS de sql server 2008 r2.

    Voici mon problème :

    *Je possède une dimension DIM_COLLABORATEUR qui est la hiérarchie des employés. C'est une dimension parent-enfant.

    Par exemple j'ai :

    - Personne 1 (niveau 1)
    .........+ Personne 2 (niveau 2)
    .........+ Personne 3
    ......... - Personne 4
    .......................+ Personne 5 (niveau 3)
    ......................... Personne 6 (feuille)
    ......................... Personne 7 (feuille)

    *Ensuite j'ai une table FORMATION de fait dans laquelle sont enregistrées les formations des employés. Cette table possède l'identifiant de l'employé, l'année de sa formation, le thème de sa formation et la durée en heure de sa formation. J'ai donc créé une mesure NB HEURES qui est "sans aggrégation" (car on dispose d'un nombre d'heures, ou aucune ligne si aucune formation, par année pour chaque employés dans la table FORMATION).


    exemple :
    Personne 1 | 2009 | INCONNU | 10,9
    Personne 1 | 2010 | INCONNU | 9,3
    .....
    Personne 7 | 2011 | INCONNU | 3,9


    *Le but final est d'obtenir un rapport grâce à SSRS, permettant à un employé de voir selon les années le nombre d'heures pendant lequel il a été formé par rapport à la moyenne (toujours pour chaque année) du nombre d'heures de formation de tous les employés.


    *Mon maître de stage voudrait que j'utilise la dimension DIM_COLLABORATEUR au lieu d'une dimension avec tous les employés à plat donc mon problème est le suivant. Lorsque dans mon cube j'essaye de voir les heures de formations des employés en fonction des années, je ne vois que les heures des employés tout en bas de la hierarchie, donc les heures de formation des "feuilles". C'est à dire que si je sélectionne l'année "2009" et la personne "Personne 7" je verrais écris 3,9. Par contre si j'essaye de selectionner un manager comme "Personne 1" dans mon schéma précédent, cela sélectionne aussi les collaborateurs en dessous de lui et aucune valeur n'apparaît.

    *J'ai vu qu'une fonction dataMember permet de récupérer la valeur d'un "noeud intermédiaire" (ou non feuille) dans une hiérarchie parent enfant mais je ne sais pas où, ni comment l'utiliser. J'ai cru aussi comprendre que dans la dimension des collaborateur, la propriété MembersWithData permet de "changer l'affichage final" de la dimension mais n'a aucune répercussion sur l'affichage des valeurs donc j'ai écarté cette propriété.

    /?\ J'aimerais donc que vous puissiez m'expliquer avec des termes très simple (en fonction de mon niveau) les manipulations à faire pour pouvoir réaliser ce que je désire, si c'est possible? Sinon pensez-vous que même si je ne vois aucune valeur dans le cube, j'en verrai quand même dans SSRS ? (j'en doute mais je vous demande quand même)


    PS : J'ai regardé l'exemple AdventureWorks mais il y a tellement de mesures différentes et les cubes sont tellements grands que j'ai du mal à m'y retrouver. De même je suis allé consulté le blog de M. Jehl et j'ai trouvé : "[...] Qu’Amy Alberts elle apparaît bien à plat mais avec une valeur fausse: la valeur affichée est en effet celle de son DataMember et pas l’aggrégation de celui ci et de ses enfants." Je veux donc le contraire de ce qui est expliqué dans cet article car pour moi c'est la valeur du datamember que je veux afficher et non une valeur aggrégée des enfants.

    J'espère avoir été assez clair.
    Je vous remercie d'avance de l'aide que vous me procurerez.

    Cordialement

  2. #2
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2012
    Messages : 2
    Points : 3
    Points
    3
    Par défaut Solution trouvée
    Bonjour,
    La solution m'a été donnée.
    Normalement, la propriété de la mesure "No aggregation" aurait du suffire mais dans notre cas, nous avons du aller dans l'onglet "Calculations" du cube. Puis nous avons créé un "new script command" dans lequel nous avons écrit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SCOPE( <Mesure à calculer> );
      This = [DIM_COLLABORATEUR].[Id MANAGER].currentmember.datamember;
    END SCOPE

    Où "[DIM_COLLABORATEUR].[Id MANAGER]" est la dimension Parent-child des employés et "<Mesure à calculer>" était notre nombre d'heures de formation que nous voulions afficher sans aggrégation.

    Ainsi, on pouvait afficher le nombre d'heures de formation de chaque employés (y compris les noeuds intermédiaires de la dimension) au lieu de n'afficher que les feuilles.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 08/02/2013, 14h27
  2. Réponses: 3
    Dernier message: 05/06/2012, 10h38
  3. Réponses: 3
    Dernier message: 08/02/2011, 20h18
  4. Réponses: 3
    Dernier message: 29/04/2010, 13h54
  5. Réponses: 7
    Dernier message: 25/01/2009, 22h50

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