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

Mondrian Discussion :

Erreur requête MDX


Sujet :

Mondrian

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2014
    Messages : 96
    Points : 51
    Points
    51
    Par défaut Erreur requête MDX
    Bonjour à vous,

    Je débute sur le sujet et j'ai cette erreur que je comprend tout à fait mais que je n'arrive pas à résoudre dans le besoin que je souhaite :

    All arguments to function '{}' must have same hierarchy.

    J'ai un cube nommé test dans lequel j'ai deux dimensions usages (Store et Product) et deux dimensions (Occupation et Yearly_Income) et une mesure Store sales.
    J'aimerais avoir un tableau avec en ligne les différents produits (ça aucun soucis) et en colonne Occupation et Yearly_Income mais je ne sais pas comment faire pour contourner cette erreur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    select
    	Crossjoin({[Measures].[Store sales]},{[Occupation].Members,[Yearly_Income].Members})
     
    on columns,
    {
    	[Product].[Product Family].Members
    } on rows
     
    FROM test
    Merci à vous.

  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 : 36
    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,

    Ton problème vient d'ici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {[Occupation].Members,[Yearly_Income].Members}
    Tu exploites deux hiérarchies différentes donc, dans l’état cela ne peut fonctionner.

    Si tu veux croiser ta dimension "Occupation" avec "Yearly_Income" tu dois faire un truc de ce genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    select
        Crossjoin({[Measures].[Store sales]},{[Occupation].Members},{[Yearly_Income].Members})
     
    on columns,
    {
        [Product].[Product Family].Members
    } on rows
     
    FROM test
    Elros

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2014
    Messages : 96
    Points : 51
    Points
    51
    Par défaut
    Bonjour,

    Merci pour votre réponse, j'avais déjà essayé d'utilisé le Crossjoin seulement voilà l'erreur que j'ai :


    Mondrian Error:No function matches signature 'CrossJoin(<Set>, <Set>, <Set>)'

  4. #4
    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 : 36
    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
    Dans Mondrian si je ne me trompe pas tu ne peux pas mettre plus de deux "set" par "CrossJoin". Tu dois les imbriquer.

    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
    select
    Crossjoin(
        {[Measures].[Store sales]}
        ,CrossJoin(
            {[Occupation].Members}
            ,{[Yearly_Income].Members}
        )
    )
     
    on columns,
    {
    [Product].[Product Family].Members
    } on rows
     
    FROM test
    Essaye ceci ;-)

    Elros

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2014
    Messages : 96
    Points : 51
    Points
    51
    Par défaut
    Ça fonctionne merci à toi. J'ai juste une dernière question. Imaginons j'ai une troisième dimension à rajouter en plus de Occupation et Yearly_Income dans le Crossjoin, comment je pourrais faire (puisque cela revient à la même erreur que précédemment) ?

  6. #6
    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 : 36
    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
    Tu peux ajouter autant (je ne sais pas s'il y'a une limite) de dimension en colonne et ligne. Pour chaque dimension supplémentaire ajoutée, tu dois l'imbriquer. 2 sets par "CrossJoin".

    Elros

  7. #7
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2014
    Messages : 96
    Points : 51
    Points
    51
    Par défaut
    Aurais-tu un exemple, parce que là si j'ajoute un troisième dimension je ne vois pas comment je pourrais avoir un Crossjoin avec 2 set et que le rendu final corresponde à ce que je souhaite.

    Merci beaucoup.

  8. #8
    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 : 36
    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
    Je ne suis pas sûre de saisir ton problème.

    Si tu veux, par exemple, ajouter la dimension "InvoiceState" cela donnerai 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
    select
    Crossjoin({[Measures].[Store sales]}
        ,CrossJoin({[Occupation].Members},
            ,CrossJoin({[Yearly_Income].Members},{[InvoiceState].Members}
            )
        )
    )
     
    on columns,
    {
    [Product].[Product Family].Members
    } on rows
     
    FROM test
    Tu auras juste les colonnes de ton résultat qui seront éclatées avec ta nouvelle dimension.

    Elros

  9. #9
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2014
    Messages : 96
    Points : 51
    Points
    51
    Par défaut
    Ce que je veux c'est en colonne la mesure Store Sales pour la dimension Occupation, la mesure Store Sales pour la dimension Yearly_Income etc.. par type de produit (ce qui est en ligne)

    Je t'explique mieux:

    J'essaye de donner le nombre de vente par produit par rapport à la profession. Donc de cette façon là :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    select {
        Crossjoin({[Measures].[Store sales]}, {[Occupation].[Occupation].Members}) 
    } on columns,
    {
        [Product].[Product Family].Members
    } on rows
    From test
    De même pour le revenu en remplaçant occupation par yearly_income.

    J'aimerais combiner ces deux requêtes séparées en une seule requête.

Discussions similaires

  1. Erreur requête MDX
    Par akilam87 dans le forum SSAS
    Réponses: 1
    Dernier message: 30/04/2011, 16h27
  2. [HQL] erreur requête delete
    Par PamelaGeek dans le forum Hibernate
    Réponses: 4
    Dernier message: 17/02/2006, 14h27
  3. Erreur requête - Types de données imcompatibles
    Par charleshbo dans le forum Access
    Réponses: 4
    Dernier message: 14/02/2006, 17h57
  4. [VB6] Erreur Requête
    Par yoda7666 dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 30/01/2006, 22h20
  5. [erreur requête]
    Par viny dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 16/09/2005, 14h55

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