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

SSRS Discussion :

[MDX][SSRS] Comment récupérer les 12 derniers mois avec une dimension temps standard


Sujet :

SSRS

  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Janvier 2008
    Messages
    572
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 572
    Points : 341
    Points
    341
    Par défaut [MDX][SSRS] Comment récupérer les 12 derniers mois avec une dimension temps standard
    Bonjour,

    Dans l'onglet Données, je souhaiterais créer un dataset qui récupère les 12 derniers mois.
    J'ai une dimension Temps standard avec Année, Mois, Jour etc jusqu'en 2020.

    Statiquement je peux sélectionner Période limites incluses, et sélectionner à la main les mois de départ et d'arrivée, mais évidement je ne compte pas m'amuser à changer la requête tous les mois.

    Quelle requête MDX me permettrait d'obtenir les 12 derniers mois ?

    a+, =)
    -=Clément=-

  2. #2
    Membre éclairé
    Avatar de Reskibil
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    561
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2007
    Messages : 561
    Points : 815
    Points
    815
    Par défaut
    Qu'est-ce que tu entends par 12 derniers mois ?
    De mai 2008 à mai 2007 par exemple ? Ou bien les années civiles completes ?

    Dans le 1er cas, tu peux utiliser LASTPERIODS avec comme date de départ le mois en cours et une periode de 12 sur ta hierarchie mois.
    http://msdn.microsoft.com/en-us/library/ms145588.aspx


    Dans le second cas, tout betement de janvier à decembre de l'année en cours.

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Janvier 2008
    Messages
    572
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 572
    Points : 341
    Points
    341
    Par défaut
    Merci,
    Citation Envoyé par Reskibil Voir le message
    Qu'est-ce que tu entends par 12 derniers mois ?
    De mai 2008 à mai 2007 par exemple ? Ou bien les années civiles completes ?

    Dans le 1er cas, tu peux utiliser LASTPERIODS avec comme date de départ le mois en cours et une periode de 12 sur ta hierarchie mois.
    http://msdn.microsoft.com/en-us/library/ms145588.aspx


    Dans le second cas, tout betement de janvier à decembre de l'année en cours.
    J'entend de mai 2008 à mai 2007 par exemple. Comment exprimer le mois en cours en MDX ?

  4. #4
    Membre éclairé
    Avatar de Reskibil
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    561
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2007
    Messages : 561
    Points : 815
    Points
    815
    Par défaut
    Dans un parametre. Après il y a plusieurs facon de faire mais par exemple, ce que je ferai :
    Un parametre Mois avec comme valeur ="[Dim Time].[Hierarchy].&[" + Year(Today()) +"]&[" + Month(today()) + "]"

    Et ensuite, dans le MDX, tu appelle le parametre dans la fonction LASTPERIODS.

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Janvier 2008
    Messages
    572
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 572
    Points : 341
    Points
    341
    Par défaut
    Merci. L'année 2007 s'écrit 2007-01-01 00:00:00Z. Le mois de mai s'écrit 2007-05-01 00:00:00Z. Comme la fonction Month(foobar) retourne un entier entre 1 et 12, il me manque le 0 devant pour les 9 premiers mois, d'où ma valeur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ="[calendar].[Year - Month - Full Date].&["+CStr(Year(today()))+
    "-01-01T00\:00\:00Z].&["+
    CStr(Year(today()))+"-"+
    Iif(Month(today())<10,"0"+CStr(Month(today())),CStr(Month(today())))+
    "-01T00\:00\:00Z]"
    Valeur par défaut sans requête ou Valeur du tableau Valeurs disponibles sans requête ? Car je n'arrive pas à sortir un Label.

  6. #6
    Membre expérimenté

    Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    690
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 690
    Points : 1 478
    Points
    1 478
    Par défaut
    Peut être que je suis hors champs là... mais PeriodToDate ne fait pas ce que tu veux faire ?

  7. #7
    Membre éclairé
    Avatar de Reskibil
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    561
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2007
    Messages : 561
    Points : 815
    Points
    815
    Par défaut
    Si je me souviens bien, PeriodToDate et dérivés YTD, MTD et WTD prennent la periode depuis le début de l'année jusqu'à la date précisée tandis que LASTPERIODS prend un nombre de periodes précisé jusqu'à la date donnée.

    Clement:
    Si tu veux prendre 12 mois, t'as pas besoin de descendre au niveau jour. Je connais pas ton cube mais logique, une hierarchie Time est supposée inclure une hierarchie du genre Année-mois-jour donc ce serait plus simple de faire un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ="[calendar].[Year - Month].&[" + year(...) + "]&[" + month(...) + "]"
    Pour obtenir quelque chose comme [calendar].[Year - Month].&[2007]&[1] pour janvier 2007.

  8. #8
    Membre averti
    Homme Profil pro
    Inscrit en
    Janvier 2008
    Messages
    572
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 572
    Points : 341
    Points
    341
    Par défaut
    Merci, j'ai avancé : dans la requête principale on fixe un filtre Intervalle Limites Incluses sur par exemple l'Année, puis on sélectionne Paramètre pour les 2 dates limites, ce qui crée les 2 paramètres.
    -dans Valeurs disponibles sans requête,
    --colonne Etiquette il faut écrire une expression qui retournera l'équivalent de l'étiquette que l'on veut, par exemple ="Annee "+cstr(year(today()-1)
    --colonne Valeur il faut écrire une expression qui retournera l'équivalent du membre MDX, par exemple ="[calendar].[year - month - day].["+year(today( etc (c'est la Valeur dont on parle dans les posts plus hauts)
    Je n'ai pas le projet sous la main donc j'attend avant de mettre Résolu.

Discussions similaires

  1. Réponses: 5
    Dernier message: 07/02/2022, 07h58
  2. Comment récupérer les 2 derniers enregistrements d'une table?
    Par js8bleu dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 07/11/2009, 20h21
  3. [XL-2003] comment récupérer les 4 dernier chiffres d'une cellule
    Par bosk1000 dans le forum Excel
    Réponses: 4
    Dernier message: 27/08/2009, 16h34
  4. [Dates] Récupérer les 6 derniers mois
    Par identifiant_bidon dans le forum Langage
    Réponses: 4
    Dernier message: 06/12/2007, 10h21
  5. Réponses: 6
    Dernier message: 01/06/2007, 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