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 :

[SQL2K5][MDX] Utilisation d'un simple filtre sur valeurs


Sujet :

SSAS

  1. #1
    Membre chevronné Avatar de Jinroh77
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Février 2006
    Messages
    1 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Février 2006
    Messages : 1 964
    Points : 2 145
    Points
    2 145
    Par défaut [SQL2K5][MDX] Utilisation d'un simple filtre sur valeurs
    Bonjour à tous,
    Je cherche à filtrer sur une dimension de temps, les années > 2000. Ce dataset me permet alors de remplir un paramètre de mon rapport.

    Je ne comprends pas pourquoi le filtre ne filtre rien

    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
    WITH MEMBER [Measures].[ParameterCaption] AS 
        '[Date Inscription].[Inscription - Annee - Mois - Jour].CURRENTMEMBER.MEMBER_CAPTION' 
    MEMBER [Measures].[ParameterValue] AS 
        '[Date Inscription].[Inscription - Annee - Mois - Jour].CURRENTMEMBER.UNIQUENAME' 
    MEMBER [Measures].[ParameterLevel] AS 
        '[Date Inscription].[Inscription - Annee - Mois - Jour].CURRENTMEMBER.LEVEL.ORDINAL' 
     
    SELECT {
        [Measures].[ParameterCaption]
        , [Measures].[ParameterValue]
        , [Measures].[ParameterLevel]} 
        ON COLUMNS 
        , { 
        filter (   
            [Date Inscription].[Inscription - Annee - Mois - Jour].[Mois].AllMembers
            ,[Date Inscription].[Inscription - Annee - Mois - Jour].CurrentMember.MEMBER_CAPTION > 2000)
         }
            ON ROWS
     
    FROM [Demos]
    Le second essai ne s'exécute même pas.
    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
    WITH MEMBER [Measures].[ParameterCaption] AS 
        '[Date Inscription].[Inscription - Annee - Mois - Jour].CURRENTMEMBER.MEMBER_CAPTION' 
    MEMBER [Measures].[ParameterValue] AS 
        '[Date Inscription].[Inscription - Annee - Mois - Jour].CURRENTMEMBER.UNIQUENAME' 
    MEMBER [Measures].[ParameterLevel] AS 
        '[Date Inscription].[Inscription - Annee - Mois - Jour].CURRENTMEMBER.LEVEL.ORDINAL' 
     
    SELECT {
        [Measures].[ParameterCaption]
        , [Measures].[ParameterValue]
        , [Measures].[ParameterLevel]} 
        ON COLUMNS 
        , { 
        filter (   
            [Date Inscription].[Inscription - Annee - Mois - Jour].[Mois].AllMembers
            ,[Date Inscription].[Inscription - Annee - Mois - Jour].[Annee] > 2000)
         }
            ON ROWS
     
    FROM [Demos]
    La fonction > attend une expression d'ensemble de tuples pour l'argument 2. Une expression de chaîne ou numérique a été utilisée.
    Merci pour vos idées.

    EDIT : Par contre cela fonctionne :
    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
    22
    23
    24
    WITH MEMBER [Measures].[ParameterCaption] AS 
        '[Date Inscription].[Inscription - Annee - Mois - Jour].CURRENTMEMBER.MEMBER_CAPTION' 
    MEMBER [Measures].[ParameterValue] AS 
        '[Date Inscription].[Inscription - Annee - Mois - Jour].CURRENTMEMBER.UNIQUENAME' 
    MEMBER [Measures].[ParameterLevel] AS 
        '[Date Inscription].[Inscription - Annee - Mois - Jour].CURRENTMEMBER.LEVEL.ORDINAL' 
     
    SELECT {
        [Measures].[ParameterCaption]
        , [Measures].[ParameterValue]
        , [Measures].[ParameterLevel]} 
        ON COLUMNS 
        , [Date Inscription].[Inscription - Annee - Mois - Jour].[Mois].AllMembers
        ON ROWS
     
    FROM ( SELECT ( 
        -{ [Date Inscription].[Inscription - Date Annee].&[1993]
            , [Date Inscription].[Inscription - Date Annee].&[1994]
            , [Date Inscription].[Inscription - Date Annee].&[1995]
            , [Date Inscription].[Inscription - Date Annee].&[1996]
            , [Date Inscription].[Inscription - Date Annee].&[1997]
            , [Date Inscription].[Inscription - Date Annee].&[1998]
            , [Date Inscription].[Inscription - Date Annee].&[1999] } ) ON COLUMNS 
    FROM [Demos])

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    269
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2008
    Messages : 269
    Points : 339
    Points
    339
    Par défaut
    Salut,

    Ce n'est peut être pas la manière la plus élégante de le faire mais ceci devrait fonctionner:

    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].[ParameterCaption] AS 
        '[Date Inscription].[Inscription - Annee - Mois - Jour].CURRENTMEMBER.MEMBER_CAPTION' 
    MEMBER [Measures].[ParameterValue] AS 
        '[Date Inscription].[Inscription - Annee - Mois - Jour].CURRENTMEMBER.UNIQUENAME' 
    MEMBER [Measures].[ParameterLevel] AS 
        '[Date Inscription].[Inscription - Annee - Mois - Jour].CURRENTMEMBER.LEVEL.ORDINAL' 
     
    SELECT {
        [Measures].[ParameterCaption]
        , [Measures].[ParameterValue]
        , [Measures].[ParameterLevel]} 
        ON COLUMNS 
        , { 
        filter (   
            [Date Inscription].[Inscription - Annee - Mois - Jour].[Mois].AllMembers
            ,cint([Date Inscription].[Inscription - Annee - Mois - Jour].CurrentMember.parent.name) > 2000)
         }
            ON ROWS
     
    FROM [Demos]

  3. #3
    Membre chevronné Avatar de Jinroh77
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Février 2006
    Messages
    1 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Février 2006
    Messages : 1 964
    Points : 2 145
    Points
    2 145
    Par défaut
    Bonjour,
    Merci pour lé réponse mais la commande cint ne semble pas fonctionner.
    L'erreur système suivante s'est produite : Invalid procedure call or argument.
    Lorsque je la retire, le script tourne mais sans filtrer.

    Merci.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    269
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2008
    Messages : 269
    Points : 339
    Points
    339
    Par défaut
    La fonction "CInt" convertit une chaine de caractère en entier. Pour qu'elle fonctionne, il faut que l'expression qu'elle reçoit en paramètre représente donc un entier.

    Est-ce que l'expression

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [Date Inscription].[Inscription - Annee - Mois - Jour].CurrentMember.parent.name
    te renvoie bien un entier?

  5. #5
    Membre chevronné Avatar de Jinroh77
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Février 2006
    Messages
    1 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Février 2006
    Messages : 1 964
    Points : 2 145
    Points
    2 145
    Par défaut
    En créant un membre et un select dessus j'obtiens bien les années.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    MEMBER [Measures].[TT] AS 
    [date inscription].[inscription - annee - mois - jour].currentmember.parent.name
    Par contre j'ai une des valeurs à Unknown, est celle-ci qui pose problème ?

    Merci de ton aide.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    269
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2008
    Messages : 269
    Points : 339
    Points
    339
    Par défaut
    C'est probable...
    Exclus la de ton set pour voir...

  7. #7
    Membre chevronné Avatar de Jinroh77
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Février 2006
    Messages
    1 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Février 2006
    Messages : 1 964
    Points : 2 145
    Points
    2 145
    Par défaut
    J'ai filtré les lignes avec un Where et effectivement à ce moment le CINT fonctionne et retourne ce qu'il faut !!
    Merci beaucoup.

    Par contre je n'arrive pas à filtrer correctement ce Unknown (autre que par le where qui ne va pas).

    Merci

Discussions similaires

  1. filtre sur valeur Null
    Par lito74 dans le forum VBA Access
    Réponses: 5
    Dernier message: 22/08/2016, 11h42
  2. Filtre sur valeur absente
    Par stdebordeau dans le forum Windows Forms
    Réponses: 2
    Dernier message: 11/05/2009, 12h26
  3. Réponses: 11
    Dernier message: 07/07/2008, 11h07
  4. [2.2.1] Dataset - filtre sur valeur décimale
    Par erwan.bodere dans le forum BIRT
    Réponses: 6
    Dernier message: 20/02/2008, 09h17
  5. Filtre sur valeur d'un calendrier
    Par Fredo67 dans le forum Access
    Réponses: 14
    Dernier message: 28/11/2006, 11h57

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