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 :

Problème requête MDX


Sujet :

SSAS

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 93
    Points : 36
    Points
    36
    Par défaut Problème requête MDX
    Bonjour à tous,

    Mon problème du jour :
    J'ai cette requête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    with 
    member [Measures].[Volume] as '[Measures].[SUM of indicateurs.Volume]'
    set [Nom] as Descendants([Chargeur.Chargeur].[All chargeur].[RHONE ALPES].[69],[Chargeur.Nom])
     
    select 
    NON EMPTY {[Measures].[Volume]} ON COLUMNS,
    NON EMPTY Crossjoin([Nom],[Destinataire.Destinataire].[All destinataire].children)				
    ON ROWS
    from [Volume]
    qui me renvoie ceci:
    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
       Volume 
       Measures 
    Destinataire EST France SALAISON 10 330 
    Destinataire NORD France SALAISON 44 899 
    Destinataire OUEST France SALAISON 85 317 
    Destinataire PARIS EST France SALAISON 86 156 
    Destinataire SUD EST France SALAISON 69 773 
    Destinataire SUD OUEST France SALAISON 48 931 
    Destinataire NORD VERONESI 26 055 
    Destinataire OUEST VERONESI 15 083 
    Destinataire PARIS EST VERONESI 101 299 
    Destinataire SUD EST VERONESI 86 186 
    Destinataire OUEST UNION SCOFF 15 765 
    Destinataire PARIS EST UNION SCOFF 40 601 
    Destinataire SUD EST UNION SCOFF 103 407 
    Destinataire SUD OUEST UNION SCOFF 22 602 
    Destinataire EST GERIN ROCH 9 313 
    Destinataire NORD GERIN ROCH 14 997 
    Destinataire OUEST GERIN ROCH 33 281 
    Destinataire PARIS EST GERIN ROCH 65 246
    France Salaisonet Veronesi correspondent au chargeur.Nom
    EST, OUEST... correspondent aux destinataire.

    Jusque là tout va bien... Là je me tire les cheveux pour avoir une requête qui me renvoie que les valeurs pour France Salaison soit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
       Volume 
       Measures 
    Destinataire EST France SALAISON 10 330 
    Destinataire NORD France SALAISON 44 899 
    Destinataire OUEST France SALAISON 85 317 
    Destinataire PARIS EST France SALAISON 86 156 
    Destinataire SUD EST France SALAISON 69 773 
    Destinataire SUD OUEST France SALAISON 48 931
    J'attend votre précieuse aide messieurs les experts

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2008
    Messages : 144
    Points : 68
    Points
    68
    Par défaut
    Je suis pas un expert mais c'est pas une histoire de where? genre si tu remplaces children par SALAISON

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 93
    Points : 36
    Points
    36
    Par défaut
    Oui mais en faite, Salaison est un Chargeur.Nom et pas un destinataire.

    J'ai tout essayé, j'en peut plus Merci pour ton soutient

  4. #4
    Membre expérimenté

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

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 690
    Points : 1 478
    Points
    1 478
    Par défaut
    C'est ça ! Il te suffit juste de spécifier les membres explicitement :
    [Hiérarchie].[Attribut].&[Valeur]
    Le "&" désigne une valeur.

    Sauf si j'ai mal compris ta question

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 93
    Points : 36
    Points
    36
    Par défaut
    Déjà merci pour l'astuce du & que je ne connaissais pas

    Mais euh, je n'y arrive pas pour autant

    J'ai essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    set [Nom] as Descendants([Chargeur.Chargeur].[Allchargeur].[{regionChargeur}].[{departementChargeur}]
    ,[Chargeur.Nom].&[SALAISON])
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Crossjoin(
    [Nom].&[SALAISON], 
    [Destinataire.Destinataire].[All destinataire].children)
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE [Nom].&[SALAISON]
    Mon problème est bien de filtrer les Descendants [Chargeur.Nom] et pas les Destinataires...

    Merci de votre aide

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

    Informations forums :
    Inscription : Mai 2007
    Messages : 561
    Points : 815
    Points
    815
    Par défaut
    oui ou un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    FROM (SELECT ([Chargeur.Nom].&[France salaison]) on 0
    FROM [Volume])

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 93
    Points : 36
    Points
    36
    Par défaut
    Citation Envoyé par Reskibil Voir le message
    oui ou un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    FROM (SELECT ([Chargeur.Nom].&[France salaison]) on 0
    FROM [Volume])
    J'y ai cru mais non ne marche pas

  8. #8
    Membre expérimenté

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

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 690
    Points : 1 478
    Points
    1 478
    Par défaut
    As tu une hiérarchie de définie avec tes deux attributs de dimension ? Si oui, essaye de passer par elle

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 93
    Points : 36
    Points
    36
    Par défaut
    Oui, excuse moi je débute je ne comprend pas exactement le sens de ta question. Je te donne le code XML du cube correspond à ma Hiérarchie Chargeur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <Dimension foreignKey="ID_Chargeur" name="Chargeur">
    			<Hierarchy name="Chargeur" hasAll="true" allMemberName="All chargeur" primaryKey="ID_Chargeur">
    				<Table name="chargeur">
    				</Table>
    				<Level name="chargeur.Region" table="chargeur" column="Region" type="String" uniqueMembers="false" levelType="Regular" hideMemberIf="Never">
    				</Level>
    				<Level name="chargeur.Departement" table="chargeur" column="Departement" type="String" uniqueMembers="false" levelType="Regular" hideMemberIf="Never">
    				</Level>
    				<Level name="chargeur.Ville" table="chargeur" column="Ville" type="String" uniqueMembers="false" levelType="Regular" hideMemberIf="Never">
    				</Level>
    				<Level name="chargeur.Nom" table="chargeur" column="Nom" type="String" uniqueMembers="false" levelType="Regular" hideMemberIf="Never">
    				</Level>
    			</Hierarchy>
    		</Dimension>

  10. #10
    Membre expérimenté

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

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 690
    Points : 1 478
    Points
    1 478
    Par défaut
    Ok ! Quand tu dis que ça ne marche pas, y'a t'il une erreur de générée ou est ce que ça te retourne tous les résultats ?

  11. #11
    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,

    Juste une petite rectification:

    le "&" ne signifie pas valeur mais clé de membre.

    ex : une dimension produit avec une ligne dont l'id est "87" et le nom de produit "Mon Produit"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [DimProduit].[Produit].&[87]
    et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [DimProduit].[Produit].[Mon Produit]
    sont équivalentes.

    En fait, pour être précis, le "&" fait référence à une valeur de la colonne de la table renseignée par la propriété "KeyColumn" de l'attribut de la dimension et sans ce "&", on fait référence à une valeur de la colonne de la table renseignée par le "NameColumn".


    Pour ton problème, tu devrais essayer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [Nom de ta dimension].[Nom de ta hiérarchie].[Nom du niveau du membre].[Nom du membre]
    à la place de ta fonction "descendant".

    Donc d'après ton xml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [Chargeur].[Chargeur].[chargeur.Nom].[France SALAISON]
    Enfin, si je me trompe pas...

  12. #12
    Membre expérimenté

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

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 690
    Points : 1 478
    Points
    1 478
    Par défaut
    Merci psycho ! On me l'a mal expliqué et j'ai transmis cette mauvaise explication !

  13. #13
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 93
    Points : 36
    Points
    36
    Par défaut
    Citation Envoyé par ygrim Voir le message
    Ok ! Quand tu dis que ça ne marche pas, y'a t'il une erreur de générée ou est ce que ça te retourne tous les résultats ?
    Alors tous ce que j'ai essayé me renvoie une erreur "Failed to parse query "


    psychokwax: Mon problème est que j'ai comme hierarchie Chargeur:
    Region
    Département
    Ville
    Nom

    A partir de cà je veux la liste des chargeurs dont le nom est "SALAISON".
    Alors je nvois pas comment faire?
    [Chargeur.Chargeur].[All Chargeur].[Region].[Departement].[Ville].[Nom] , mais je ne peut pas, je ne veux pas limiter ma recherche à certaines Villes.

    J'espère que je suis assez explicite, un peu du mal là

    EDIT: j'avais mal lu, j'ai tenté:
    [Chargeur].[Chargeur].[Chargeur.Nom].[SALAISON] mais j'ai encore une erreur "failed to parse query"

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

    Informations forums :
    Inscription : Mai 2007
    Messages : 561
    Points : 815
    Points
    815
    Par défaut
    Le plus simple c'est que tu fasse un drag&drop du membre en le selectionnant dans l'arborescence du cube, au moins tu aura la bonne hierarchie/clé non ?

  15. #15
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 93
    Points : 36
    Points
    36
    Par défaut
    Euh, j'ai oublié de préciser quelque chose je crois

    Je fais cà avec Mondrian et pas avec Microsoft

    Je pensais que la syntaxe était quasi-identique...

    En tout cas merci pour vos réponses rapides, je cherche depuis le début de l'après midi et impossible de faire cette requête... je crois que je vais péter un cable

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

    Informations forums :
    Inscription : Mai 2007
    Messages : 561
    Points : 815
    Points
    815
    Par défaut
    Je fais cà avec Mondrian et pas avec Microsoft
    Ne connaissant pas Mondrian, je saurais pas dire quelles sont les différences mais avec tout ce que j'ai lu (bon ok, survolé) je serais tenté de dire ca:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    WITH 
    member [Measures].[Volume] AS '[Measures].[SUM of indicateurs.Volume]'
    SET [Nom] AS Descendants([Chargeur.Chargeur].[ALL chargeur].[RHONE ALPES].[69],[Chargeur.Nom])
     
    SELECT 
    NON EMPTY {[Measures].[Volume]} ON COLUMNS,
    NON EMPTY Crossjoin([Nom],[Destinataire.Destinataire].[ALL destinataire].children)				
    ON ROWS
    FROM ( SELECT({[Chargeur].[Chargeur].[chargeur.Nom].[France SALAISON]}] ON COLUMNS
    FROM [Volume])
    Ou ca

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    WITH 
    member [Measures].[Volume] AS '[Measures].[SUM of indicateurs.Volume]'
    SET [Nom] AS Descendants([Chargeur.Chargeur].[ALL chargeur].[RHONE ALPES].[69],[Chargeur.Nom])
     
    SELECT 
    NON EMPTY {[Measures].[Volume]} ON COLUMNS,
    NON EMPTY Crossjoin([Nom],[Destinataire.Destinataire].[ALL destinataire].children)				
    ON ROWS
    FROM [Volume]
    WHERE {[Chargeur].[Chargeur].[chargeur.Nom].[France SALAISON]}
    ou encore :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    WITH 
    member [Measures].[Volume] AS '[Measures].[SUM of indicateurs.Volume]'
    SET [Nom] AS Descendants([Chargeur.Chargeur].[ALL chargeur].[RHONE ALPES].[69],[Chargeur.Nom])
     
    SELECT 
    NON EMPTY {[Measures].[Volume]} ON COLUMNS,
    NON EMPTY 
    Filter(
    Crossjoin([Nom],[Destinataire.Destinataire].[ALL destinataire].children)
    ,{[Chargeur].[Chargeur].[chargeur.Nom].[France SALAISON]})				
    ON ROWS
    FROM [Volume]

  17. #17
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 93
    Points : 36
    Points
    36
    Par défaut
    Super sympa de m'aider

    Malheureusement aucune ne marche, j'imagine qu'il peut y avoir des petits changements dans la syntaxe avec mondrian. Je suis un train de bricoler tes requêtes en espérant que celà marche!

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

    Informations forums :
    Inscription : Mai 2007
    Messages : 561
    Points : 815
    Points
    815
    Par défaut
    C'est peut etre bete mais enleve les {} autour de la condition. A en croire ce site
    http://mondrian.pentaho.org/documentation/mdx.php
    la requete avec le where à l'air bonne

  19. #19
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 93
    Points : 36
    Points
    36
    Par défaut
    Ca ne veut pas... Je pense aussi que c'est la bonne solution pourtant, j'ai pas d'erreur ailleurs puisque si j'enlève la clause WHERE la requete s'éxécute
    J'ai essayé:
    WHERE [Chargeur.Chargeur].[All chargeur].[chargeur.Nom].[LUSTUCRU]
    WHERE [Chargeur].[Chargeur].[All chargeur].[chargeur.Nom].[LUSTUCRU]
    WHERE [Chargeur.Chargeur].[chargeur.Nom].[LUSTUCRU]
    WHERE [Chargeur].[Chargeur].[chargeur.Nom].[LUSTUCRU]
    WHERE [Chargeur.Chargeur].[All chargeur].[chargeur].[Nom].[LUSTUCRU]
    WHERE [Chargeur].[Chargeur].[All chargeur].[chargeur].[Nom].[LUSTUCRU]
    WHERE [Chargeur.Chargeur].[chargeur].[Nom].[LUSTUCRU]
    WHERE [Chargeur].[Chargeur].[chargeur].[Nom].[LUSTUCRU]

    ne marche pas

    Je vais sortir la corde je crois

  20. #20
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 93
    Points : 36
    Points
    36
    Par défaut
    J'ai créé un Topic sur le Forum pentaho: http://forums.pentaho.org/showthread.php?t=62254

    Merci à tous pour votre aide

Discussions similaires

  1. [2005] Problème pour passer un paramètre dans une requête MDX
    Par mochi dans le forum SSRS
    Réponses: 6
    Dernier message: 06/06/2012, 16h26
  2. Problème requête MDX avec JPivot
    Par bash13 dans le forum Développement
    Réponses: 1
    Dernier message: 17/12/2010, 12h17
  3. Réponses: 0
    Dernier message: 09/07/2008, 17h08
  4. [mondrian] problème requête MDX
    Par nicolep dans le forum Alimentation
    Réponses: 3
    Dernier message: 11/04/2007, 12h31
  5. Réponses: 8
    Dernier message: 23/10/2003, 16h22

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