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 :

Incompréhention de la fonction COUNT [2008R2]


Sujet :

SSAS

  1. #1
    Membre régulier
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Août 2011
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Août 2011
    Messages : 145
    Points : 94
    Points
    94
    Par défaut Incompréhention de la fonction COUNT
    Bonjour,

    Je débute toujours avec SSAS et je suis dans l'impasse:

    Je dois compter le nombre de mes stagiaires par tranche d'age ( les formules et structure du cube sont en pièces jointe.) et cela m'affiche le nombre de stagiaires du cube ...

    je me plante quelque part mais je ne vois pas où... si je prends un membre de la dimension stagiaire il me compte bien le nombre de stagiaire comme il faut mais si je prends un membre d'un autre dimension la c'est le drame ....

    Merci d'avance pour votre aide.
    Images attachées Images attachées  

  2. #2
    Membre confirmé
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Novembre 2010
    Messages
    304
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2010
    Messages : 304
    Points : 579
    Points
    579
    Par défaut
    Le comportement est normal, tu comptes quelque chose qui ne dépend que de ta dimension stagiaire. Donc si tu analyses avec une autre dimension, tu trouveras une valeur fixe.

    Une manière simple de faire serait de ramener tes tranches d'âge dans ta dimension stagiaire (ce n'est qu'une solution parmi d'autres)

  3. #3
    Membre régulier
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Août 2011
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Août 2011
    Messages : 145
    Points : 94
    Points
    94
    Par défaut
    Je vois mais je trouve ça déplorable .... en SQL la requête est très simple et prend 5 mn .... alors ça doit bien être faisable en MDX non ?

    Sinon j'ai plus qu'à refaire un cube d'analyse avec une granularité différente ....

    Mais je suis aussi tombé sur un sujet sur ce forum sujet : Le MDX c’est facile. Enfin presque. Mais je n'arrive pas à Obtenir le résultat souhaité, c'est très brouillons dans ma tête ....

  4. #4
    Membre confirmé
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Novembre 2010
    Messages
    304
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2010
    Messages : 304
    Points : 579
    Points
    579
    Par défaut
    Ah mais là, ça n'a rien à voir avec le MDX (qu'il soit simple ou compliqué), c'est une question de modélisation.

    Si tu veux compter quelque chose et analyser suivant n dimensions, il faut que ton quelque chose ait une relation avec tes n dimensions. C'est pareil en SQL, s'il n'existe pas de relations entre les tables, tu ne pourras pas dispatcher tes comptages.

  5. #5
    Membre régulier
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Août 2011
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Août 2011
    Messages : 145
    Points : 94
    Points
    94
    Par défaut
    La relation est bien la puisque ce sont deux dimensions du même cube ....
    j'ai une dimension de type démographique indiquant les différentes notions de l' enregistrement ( taille de l entreprise age du stagiaire) et de l'autre côté mon stagiaire...
    en sql ca donne

    SELECT TrancheAge, Count( ID_STAGIAIRE) from Fait
    inner join Dimention Demographique
    inner join Dimention stagiaire
    Groub by TrancheAge

    et up j'ai mon résultat ... ( cf image jointe)

    Donc il doit bien y avoir un moyen de le faire en MDX sous SSAS ... non ?
    Images attachées Images attachées  

  6. #6
    Membre confirmé
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Novembre 2010
    Messages
    304
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2010
    Messages : 304
    Points : 579
    Points
    579
    Par défaut
    Oui, en définissant le type d'agrégation à count sur votre mesure ID_Stagiaire dans votre table de faits

    Mais vous n'aviez pas mis ce que vous aviez dans votre table de faits dans votre premier message. Et notamment ce que vous comptez dans votre script initial est le champ de la dimension, alors que c'est celui de la table de faits que vous voulez compter.

  7. #7
    Membre régulier
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Août 2011
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Août 2011
    Messages : 145
    Points : 94
    Points
    94
    Par défaut
    Pourquoi faire simple quand on peut faire compliqué ...
    Effectivement avec un distinctCout directement dans les fait mesuré ça marche.

    Merci à toi

  8. #8
    Membre éprouvé Avatar de Jester
    Inscrit en
    Septembre 2003
    Messages
    813
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 813
    Points : 1 057
    Points
    1 057
    Par défaut
    Plus propre serait de faier une mesure count sur une autre dimension acteur de la dimension stagiaire.

    Il y aurait une dimension stagiaire avec les tranche d'age et une table de fait stagiaire avec une mesure de count dessus.

    Prendre une autre table de fait peut ou pas répondre à la même question. Certains stagiaires peuvent ne pas être dans cette table de fait et ne seront pas comptés.

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

Discussions similaires

  1. DBI fonction count()
    Par vodevil dans le forum SGBD
    Réponses: 2
    Dernier message: 21/04/2006, 12h53
  2. Une requête, deux tables, fonction COUNT
    Par Nerva dans le forum Requêtes
    Réponses: 8
    Dernier message: 13/04/2006, 16h10
  3. Coupler les fonction COUNT et MAX
    Par Pascal Lob dans le forum Langage SQL
    Réponses: 5
    Dernier message: 27/03/2006, 10h45
  4. fonction count dans des paramètres
    Par flo456 dans le forum ASP
    Réponses: 11
    Dernier message: 18/11/2005, 09h33
  5. Requête à plusieurs colonnes avec la fonction COUNT
    Par zigune dans le forum Langage SQL
    Réponses: 2
    Dernier message: 18/11/2004, 11h43

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