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

MS SQL Server Discussion :

[Analysis Services-MDX] calcul nommé


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de anayathefirst
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    326
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 326
    Par défaut [Analysis Services-MDX] calcul nommé
    Salut
    Dans mon cube, j’ai une mesure qui correspond au cumul du chiffre d’affaire (calculé dans mon infocentre) et je voudrais récupérer la dernière valeur de l’an passé qui correspond au total du CA réalisé.
    Je suis nouveau en MDX, et j’ai beaucoup de mal à réaliser ma requête. J’ai essayé des trucs du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ([Measures].[CA]) Where (([Axe de Temps].[Exercice -Période].PREVMEMBER).[12])
    Mais Analysis services me dit qu’il y a une erreur vers ‘AS’, mot clé que je n’utilise pas.

    Vous l’aurez bien compris ‘Exercice – Période’ est la hiérarchie que j’ai créée pour l’axe de temps ;-) (je cherche à ateindre la période 12 du même exercice)

    Si qq1 à une idée ou une superbe adresse pour un tutoriel MDX, ça m’intéresse, ceux que j'ai trouvé pour l'instant ne me paraissent pas très ...compréhencibles.

  2. #2
    Membre Expert
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Par défaut
    Bonjour,

    Par calcul nommé tu veux sans doute dire membre calculé ?

    Merci de préciser la version : 2000 ou 2005 ?

    Tu as deux fonctions très utiles en MDX : ClosingPeriod() et
    ParallelPeriod()

    Essai qqch comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {ClosingPeriod([month],(ParallelPeriod([Year], 1, [Axe de Temps].[Exercice -Période].CURRENTMEMBER)))}

  3. #3
    Membre éclairé Avatar de anayathefirst
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    326
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 326
    Par défaut
    J’utilise MS SQL Server 2005.
    En fait, ce que je voulais faire, c’est modifier carrément la vue des donnée (click droit sur la vue-> Nouveau Calcul Nommé). Pour le moment, je ne distingue pas vraiment la différence entre les deux, en tout cas dans mon cas, j’utilise la même table dans plusieurs cubes, je ne sais pas si il faut créer le même membre calculé dans chaque cube ou ajouter un calcul dans la vue de données !
    Pour le code que tu m’as proposé, il ne fonctionne pas vraiment :
    … La dimension [month] était introuvable …
    et quand j’utilise le wizzad pour créer un calcul nommé, il me dis carrément qu’il y a une violation d’autorisation …

    Au début, j’ai pensé que c’était à cause du fait que c’est des mois fiscaux, et donc j’ai changé par [FiscalMonths] et [FiscalYears] mais ça m’a donné la même erreur.

    Autre chose : connais-tu un bon tuto de MDX ? car en fait, je n'ai pas tout compris dans le code que tu m’as proposé !!!

  4. #4
    Membre Expert
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Par défaut
    Le calcul nommé dans la dsv (vue de données), ne s'applique pas au cube, mais aux données avant génération du cube. Donc tu ne peux pas utiliser du MDX. Mais tu peux te générer la valeur en dur dans une vraie colonne de ta table sous-jacente, dans ton ETL. Sinon tu dois faire un membre calculé dans ta définition de cube.

    Non, je ne connais pas de tutoriel de MDX.

  5. #5
    Membre éclairé Avatar de anayathefirst
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    326
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 326
    Par défaut
    Salut,
    Bon, j’ai essayé de lire la doc de Microsoft ‘http://technet.microsoft.com’ et j’ai écrit le code suivant pour faire ce dont j’ai besoin :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    ClosingPeriod( 
        [Axe de Temps].[Exercice - Période].[Période],
        ParallelPeriod
        (
            [Axe de Temps].[Exercice - Période].[Code Exercice],
            1,
            ([Measures].[Cumul CA]).CURRENTMEMBER
        )
    )
    Problème :
    En mode ‘débogage’ avec un select on 0 from [mon cube], il me dit :
    Query (1, 8) La fonction CLOSINGPERIOD attend une expression de niveau pour l'argument . Une expression de membre a été utilisée.
    J’ai peut-être mal cherché, mais je ne trouve pas de définition claire dans le site de Microsoft d’une expression de niveau… je ne sais donc pas comment remédier à mon problème :-S

    Lorsque je passe en mode visualisation (explorateur), SSAS me sort ‘#valeur’ à la place de mon membre calculé, et il me dit :
    La hiérarchie "[Exercice - Période]0" était introuvable dans le cube lors de l'analyse de la chaine [Axe de Temps].[Exercice - Période].[Période].
    J’ai pourtant créé une dimension que j’ai appelé [Axe de Temps] et dedans, j’ai créé une hiérarchie que j’ai appelé [Exercice - Période]. Je ne sais pas d’où il sort le 0 à la fin du nom de la hiérarchie :-(

    Toute idée est la bien venu pour résoudre mon problème

  6. #6
    Membre Expert
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Par défaut
    En tout cas, le troisième argument passé à parallelperiod n'est pas bon : tu dois lui envoyer un membre de ta dimension temps.

    Comment as-tu construit ta hiérarchie Exercice - Période ? C'est quoi, Code Exercice ?

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

Discussions similaires

  1. MDX Analysis Services 2005
    Par ash_rmy dans le forum SSAS
    Réponses: 4
    Dernier message: 24/10/2010, 14h14
  2. [SQL Server 2005 Analysis services] Membres calculés/DisplayFolder
    Par anayathefirst dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 12/07/2007, 16h46
  3. MDX Analysis Services 2005
    Par Dibii dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 01/06/2007, 16h32
  4. [SQLSRV2005] Analysis Services - prob calcul
    Par Virieur dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 30/01/2007, 16h54
  5. requete MDX avec Analysis services
    Par delphi+ dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 13/09/2006, 17h29

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