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

Outils BI Discussion :

Récupérer le membre "date d'hier" dans une dimension temps


Sujet :

Outils BI

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    376
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 376
    Points : 199
    Points
    199
    Par défaut Récupérer le membre "date d'hier" dans une dimension temps
    Bonjour,

    Je développe une infomap (SAS BI 9.2 M1) sur un cube qui contient une dimension Temps.
    J'essaie d'écrire un membre calculé de type Catégorie qui me renvoie le membre "date d'hier" de cette dimension (sur une hiérarchie Annee-Semaine-Jour) en intégrant la fonction SAS TODAY(). Sans succès, le valideur d'expression me renvoie toujours une erreur. J'ai l'impression que la fonction SAS n'est pas interprétée.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    StrToMember("[Temps].[Temps_Semaine].[Temps_Semaine Tout].[" | YEAR(TODAY()) | "].[" | WEEK(TODAY()) | "].[" | DAY(TODAY() |"]")
    Merci de votre aide,

  2. #2
    Rédacteur

    Homme Profil pro
    SAS ALLIANCE SILVER. Consultant et formateur SAS et Cognos.
    Inscrit en
    Avril 2009
    Messages
    2 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : SAS ALLIANCE SILVER. Consultant et formateur SAS et Cognos.
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2009
    Messages : 2 497
    Points : 6 064
    Points
    6 064
    Par défaut
    si tu peux, fais le dans le cube (tu peux vite retrouver tes maques avec des fonctions SAS si elle sont préfixées par ceci : SAS!, Par exemple SAS!Today() dans le MDX).

    Néanmoins, si tu veux finir dans l'infomap peut-être devrais-tu compresser l'expression avec COMPRESS. C'est peut être une histoire de blanc.
    N'oubliez pas de cliquer sur lorsque votre problème est réglé !

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    376
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 376
    Points : 199
    Points
    199
    Par défaut
    Merci de ta réponse Datametric.
    Pour simplifier le test, j'ai créé le membre AnneeCourante dans le cube en mettant SAS! devant les fonctions : SAS!YEAR(SAS!TODAY())

    Je n'ai pas eu d'erreur, mais le souci est qu'au final mon objectif est de récupérer un membre de la hiérarchie Temps ([Time].[All YMD].[2010]) où 2010 correspond à la valeur de AnneeCourante.

    De fait, je ne vois pas comment utiliser ce membre calculé pour faire référence à un membre de ma dimension temps.

    J'ai essayé l'autre méthode que tu m'as proposée (méthode COMPRESS),
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    StrToMember(SAS!COMPRESS("[Time].[All YMD].[",SAS!COMPRESS(SAS!YEAR(SAS!TODAY())),"]"))

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    747
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 747
    Points : 978
    Points
    978
    Par défaut
    Salut,

    un PrevMember ne fonctionne pas ?

    xav

  5. #5
    Membre averti
    Inscrit en
    Janvier 2010
    Messages
    235
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 235
    Points : 372
    Points
    372
    Par défaut
    Salut,

    Et si tu basais ton cube non plus directement sur tes tables mais sur une vue qui calculerait une variable annee_courante ?

    genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    proc sql;
    create view tavue
    as select 
                 case when annee=year(date())  
                              then annee 
                         else . end as annee_courante
                 , *
    from tatable;
    quit;
    Tu obtiens une variable qui repère l'année courante dans tes données sans avoir à modifier ta base.

Discussions similaires

  1. Réponses: 1
    Dernier message: 16/10/2008, 17h20
  2. Réponses: 3
    Dernier message: 02/05/2008, 19h51
  3. Réponses: 2
    Dernier message: 20/02/2007, 10h29
  4. [Dates] mettre un calendrier dans une pagephp
    Par Tr@nkill dans le forum Langage
    Réponses: 12
    Dernier message: 07/04/2006, 14h19

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