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] [2K5] Total avec un IIF


Sujet :

SSAS

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2007
    Messages : 44
    Points : 40
    Points
    40
    Par défaut [SSAS] [2K5] Total avec un IIF
    Bonjour,

    sur le MDX suivant, y aurait-il une astuce pour que le total dans Excel soit le vrai total du détail ?
    Dans mon cas, il réevalue le IIF sur la donnée agrégée
    J'espère que je me suis bien fait comprendre.

    Fabrice

    -------------------------
    CREATE MEMBER CURRENTCUBE.[Measures].[# Ref facturée]
    AS IIF([Measures].[Nbre CA]>0,1,0),
    FORMAT_STRING = "#",
    NON_EMPTY_BEHAVIOR = { [Nbre CA] }

  2. #2
    Membre émérite Avatar de FrancoisJehl
    Homme Profil pro
    BI Engineer
    Inscrit en
    Juillet 2009
    Messages
    1 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : BI Engineer
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2009
    Messages : 1 485
    Points : 2 883
    Points
    2 883
    Par défaut
    Pour te répondre ce que tu souhaiterais dans un monde idéal c'est définir un membre calculé qui s'évalue au niveau de granularité de la table de faits, et sur lequel tu pourrais appliquer une fonction d'aggrégation (SUM, COUNT par exemple) pour les niveaux aggrégés.

    Une méthode rapide serait de définir ta mesure comme une mesure normale - tu peux utiliser la même colonne source que NB CA et de lui donner une aggrégation (Count?)
    Ensuite dans le script tu conserve ton assignment tel quel, sauf qu'il faut le scoper sur les niveaux feuille:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SCOPE(Leaves(), Measures.TaMesureBidon) 
    this = IIF([Measures].[Nbre CA]>0,1,0)
    END SCOPE
    Si ça rollupe bien, c'est cool.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2007
    Messages : 44
    Points : 40
    Points
    40
    Par défaut
    Merci pour la réponse mais je pense avoir peut-être mal exprimé ma demande
    En fait, la mesure [Nbre CA] est un Count sur la table de faits.
    Et je ne comprends pas bien la mesure bidon.

    Fabrice

  4. #4
    Membre émérite Avatar de FrancoisJehl
    Homme Profil pro
    BI Engineer
    Inscrit en
    Juillet 2009
    Messages
    1 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : BI Engineer
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2009
    Messages : 1 485
    Points : 2 883
    Points
    2 883
    Par défaut
    Ton NbCA est un Count... Donc je ne comprends pas ce que tu cherches à faire.
    Ce que j'avais compris moi c'est que tu as ta mesure NbCA et que tu veux, aux niveaux aggrégés avoir le nombre de niveaux "fins" qui on un NbCA>0 (en gros un count conditionnel.
    Je te disais donc que pour ça une solution consiste à définir ta mesure #Ref comme une mesure classique (aggrégation que tu souhaites) et de réaffecter les niveaux fin avant cette aggrégation

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2007
    Messages : 44
    Points : 40
    Points
    40
    Par défaut
    Désolé, je vais reprendre d'une autre façon et on oublie ce NbCA
    J'ai une mesure qui est la quantité facturée
    Quand ma qté facturée pour une réf > 0 , je souhaite un indicateur à 1
    De ce côté-là, mon IIF([Measures].[Quantite facturee CA]>0,1,0) fonctionne sauf pour les totaux
    Et maintenant j'en suis à cela
    CREATE MEMBER CURRENTCUBE.[Measures].[# Ref facturée]
    AS IIF([Measures].[Quantite facturee CA]>0,1,0),
    FORMAT_STRING = "#",
    NON_EMPTY_BEHAVIOR = { [Quantite facturee CA] },
    VISIBLE = 1;
    SCOPE(Leaves(),[Measures].[# Ref facturée]);
    THIS = IIF([Measures].[Quantite facturee CA]>0,1,0);
    END SCOPE;

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2007
    Messages : 44
    Points : 40
    Points
    40
    Par défaut
    Voici la solution que je cherchais si cela peut intéresser du monde

    CREATE MEMBER CURRENTCUBE.[Measures].[# Ref facturée]
    AS IIF(IsLeaf([ARTICLE].[Reference Principale].CurrentMember),
    IIF([Measures].[Quantite facturee CA]>0,1,0),
    Sum([ARTICLE].[Reference Principale].CURRENTMEMBER.Children,[Measures].[# Ref facturée])),
    FORMAT_STRING = "#",
    NON_EMPTY_BEHAVIOR = { [Quantite facturee CA] },
    VISIBLE = 1;

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 07/05/2010, 11h48
  2. Réponses: 3
    Dernier message: 17/09/2009, 15h06
  3. Réponses: 2
    Dernier message: 27/11/2008, 15h19
  4. [SSAS][2K5]Charger la dimension Temps avec SASS
    Par sahm84 dans le forum SSAS
    Réponses: 1
    Dernier message: 12/06/2008, 20h24
  5. Réponses: 17
    Dernier message: 18/03/2008, 17h10

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