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 :

Sélection année N-1 d'une requête


Sujet :

SSAS

  1. #1
    Inactif  
    Homme Profil pro
    Responsable BI
    Inscrit en
    Mars 2015
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Responsable BI
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mars 2015
    Messages : 62
    Points : 37
    Points
    37
    Par défaut Sélection année N-1 d'une requête
    Bonjour,

    J'ai actuellement une requête qui me renvoie les x premiers mois du calendrier de l'année en cours. Seulement, j'aimerais rajouter à ça (ou dans une autre requête), les x premiers mois de l'année précédente.

    J'ai essayé avec DATEADD("Y",-1, now()) mais ça ne fonctionne pas et j'ai pas réussi avec ParallelPeriod.
    Voilà la requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
      SELECT NON EMPTY { [Measures].[Montant Au Px Vente] } ON COLUMNS, NON EMPTY { ([Time].[Année -  Mois -  Date].[Mois].ALLMEMBERS ) } DIMENSION PROPERTIES MEMBER_CAPTION, MEMBER_UNIQUE_NAME ON ROWS 
     FROM ( SELECT ( { [Stat Facture All].[Service 2].&[EXPORT], [Stat Facture All].[Service 2].&[GASTRO], [Stat Facture All].[Service 2].&[GMS], [Stat Facture All].[Service 2].&[RETAIL], [Stat Facture All].[Service 2].&[TRAD Autriche] } ) ON COLUMNS 
     FROM ( SELECT ( { [Stat Facture All].[Société].&[DF] } ) ON COLUMNS 
     FROM (  SELECT ( { PeriodsToDate([Time].[Année -  Mois -  Date].[Année], STRTOMEMBER('[Time].[Année -  Mois -  Date].[Mois].&['+format(DATEADD("M", -1,Now()),'yyyy-MM-01T00:00:00')+']')) } ) ON COLUMNS  
     FROM [factures]))) 
     WHERE ( [Stat Facture All].[Société].&[DF], [Stat Facture All].[Service 2].CurrentMember )
    Si quelqu'un a une idée, je continu de chercher en attendant ^^

  2. #2
    Membre éprouvé
    Avatar de Elros
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Avril 2009
    Messages
    403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Avril 2009
    Messages : 403
    Points : 912
    Points
    912
    Billets dans le blog
    9
    Par défaut
    Hello,

    la fonction MDX ParallelPeriod fonctionne très bien !

    Cependant, si tu veux la faire fonctionner, il faut utiliser une hiérarchie calendrier dans ta dimension temporelle.

    Je donne un exemple ici : MDX Nombre de ventes par mois avec comparaison du même mois de l'année précédente


    Avec une requête dans le genre ça devrait passer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    WITH MEMBER [Measures].[Montant Au Px Vente m-1] AS
    (
    	ParallelPeriod([Time].[Année -  Mois -  Date].[Mois],1,[Time].[Année -  Mois -  Date].[Année].[2015])
    	,[Measures].[Montant Au Px Vente]
    )
     
    SELECT 
    NON EMPTY { 
    	[Measures].[Montant Au Px Vente],
    	[Measures].[Montant Au Px Vente m-1]
    } ON COLUMNS, 
    NON EMPTY { (
    	[Time].[Année -  Mois -  Date].[Mois].ALLMEMBERS 
    ) } ON ROWS 
     
    FROM ( SELECT ( { [Stat Facture All].[Service 2].&[EXPORT], [Stat Facture All].[Service 2].&[GASTRO], [Stat Facture All].[Service 2].&[GMS], [Stat Facture All].[Service 2].&[RETAIL], [Stat Facture All].[Service 2].&[TRAD Autriche] } ) ON COLUMNS 
    FROM ( SELECT ( { [Stat Facture All].[Société].&[DF] } ) ON COLUMNS 
    FROM (  SELECT ( { [Time].[Année -  Mois -  Date].[Année].[2015]} ) ON COLUMNS  
    FROM [factures]))) 
     
    WHERE ( [Stat Facture All].[Société].&[DF], [Stat Facture All].[Service 2].CurrentMember )

    Elros
    Un message vous a aidé ? Votez en cliquant sur Pensez au bouton

    Venez faire un petit tour sur mon blog : Elros - Bienvenue dans le monde de la Business Intelligence

Discussions similaires

  1. Calcul année de naissance avec une requête sql
    Par kroma23 dans le forum Bases de données
    Réponses: 5
    Dernier message: 26/01/2012, 19h01
  2. [MySQL] Sélection de plusieurs lignes en une requête
    Par kalash_jako dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 05/05/2006, 19h43
  3. Réponses: 9
    Dernier message: 17/10/2005, 17h13
  4. Réponses: 1
    Dernier message: 03/08/2005, 11h41
  5. Récuparation des années par une requête
    Par 973thom dans le forum Access
    Réponses: 3
    Dernier message: 14/06/2005, 18h33

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