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 :

MDX Query - multiple dimensions


Sujet :

Mondrian

  1. #1
    Membre du Club
    Femme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Janvier 2012
    Messages : 109
    Points : 56
    Points
    56
    Par défaut MDX Query - multiple dimensions
    Bonjour,
    Après la création du cube, on doit faire des requêtes MDX pour extraire les données;
    j'ai veux faire la mesure "montant" sur COLUMNS et plus de deux dimensions sur ROWS et je sais pas comment on peut faire le multiple dimensions sur le même axis;
    merci d'avance

  2. #2
    Membre du Club
    Femme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Janvier 2012
    Messages : 109
    Points : 56
    Points
    56
    Par défaut
    Bon, j'ai fais l'ETL, j'ai créer mon Cube, et maintenant je suis
    entrain de créer mon rapport a l'aide de Pentaho Report Designer en ce
    basant sur les tuto que vous m'avez envoyer vraiment merci infiniment
    car il est très utile ce Pentaho Report Designer et permet de créer
    des rapports avec un très bon design et très efficace;
    lors de la création du rapport je dois créer une connexion au
    datawarehouse et au Cube et aussi je dois entré mon MDX Query qui va
    me permet de recuperé les données, alors c'est ici que je me suis
    bloqué puisque mon besoin comme je savez c'est :

    crédit par etatCredit par agence par région par produit par
    utilisateur => etatCredit (acoordé ou rejeté ou débloqué ou soldé) en
    nombre et montant et une colonne qui contient le % du total des
    crédits par etatCredit


    Alors j'ai besoin de sélectionner plusieurs dimensions à la fois, j'ai
    trop cherché mais ça ne marche pas, j'ai fait comme suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    select
    {[Measures].[MONTANT], [Measures].[Nombre de
    CREDIT],[Measures].[POURCENTAGE]}ON COLUMNS,
    NonEmptyCrossJoin([temps].members,[agence].members,[region].members) ON ROWS
    from [cubeConcret]
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT
     {[Measures].[MONTANT], [Measures].[Nombre de
    CREDIT],[Measures].[POURCENTAGE]} ON AXIS(0),
     { [agence].members } ON AXIS(1),
     { [temps].members } ON AXIS(2)
    FROM [cubeConcret]
    je les ai testé sur Pentaho schema workbench et aussi sur Pentaho
    Report Designer mais la même chose ils ne répondent pas et ils ne me
    donnent pas de résultat et en plus ils se plantent, je me suis dis
    c'est question de temps car ça peut que la requête nécessite beaucoup
    de temps donc je l'ai laissé une heure mais sans aucune réponse.

    et lorsque j'ai fais ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT
    {[Measures].[MONTANT]} ON COLUMNS,
    NON EMPTY{[AGENCE.LIBELLEAGENCE].members,[REGION.LIBELLEREGION].members} ON ROWS
    FROM [cubeConcret]
    il ma affiché l'erreur suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Mondrian Error:All arguments to function '{}' must have same hierarchy.
    Comment je vais faire a votre avis ?

  3. #3
    Membre du Club
    Femme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Janvier 2012
    Messages : 109
    Points : 56
    Points
    56
    Par défaut
    Pour deux dimensions j'ai trouvé la solutions:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select { CrossJoin ( {([TEMPS.ANNEE].[2009]), ([TEMPS.ANNEE].[2010])}, {([Measures].[MONTANT]), ([Measures].[Nombre de CREDIT])} ) } on columns,
    { CrossJoin ( {([AGENCE].[AGENCE.LIBELLEAGENCE].members)}, {([ETATCREDIT].[ETATCREDIT.ETATCREDIT].members)} ) } on rows 
    from [cubeConcret]
    mais lorsque j'ai fais ca avec 3 dimensions :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select { CrossJoin ( {([TEMPS.ANNEE].[2009]), ([TEMPS.ANNEE].[2010])}, {([Measures].[MONTANT]), ([Measures].[Nombre de CREDIT])} ) } on columns,
    { CrossJoin( {([AGENCE].[AGENCE.LIBELLEAGENCE].members)}, {([ETATCREDIT].[ETATCREDIT.ETATCREDIT].members)},{([UTILISATEUR].[UTILISATEUR.NOMUTILISATEUR].members)} ) } on rows 
    from [cubeConcret]
    il ma affiché le message d'erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Mondrian Error:No function matches signature 'CrossJoin(<Set>, <Set>, <Set>)'
    vous pouvez m'aider.
    Merci d'avance

  4. #4
    Rédactrice

    Avatar de kalyparker
    Femme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Janvier 2007
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 327
    Points : 2 998
    Points
    2 998
    Par défaut
    Bonjour,

    Peut être que ça ça fonctionnera :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT {[Measures].[MONTANT], [Measures].[Nombre de
    CREDIT],[Measures].[POURCENTAGE]} ON 0,
    EXISTS(
    [temps].members,[agence].members,[region].members}
    ) ON 1 
    FROM [cubeConcret]
    Note : la fonction NonEmptyCrossJoin ne doit plus être utilisé (deprecated) à la place utiliser plutôt Exists () ou NonEmpty ()

  5. #5
    Membre du Club
    Femme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Janvier 2012
    Messages : 109
    Points : 56
    Points
    56
    Par défaut
    Merci pour ton feedback, mais ca marche pas car il m'affiche l'erreur suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Mondrian Error:No function matches signature 'EXISTS(<Set>, <Set>, <Set>)'
    alors que dois-je faire ?? merci infiniment.

  6. #6
    Rédactrice

    Avatar de kalyparker
    Femme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Janvier 2007
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 327
    Points : 2 998
    Points
    2 998
    Par défaut
    alors que dois-je faire ?? merci infiniment.
    chercher et tester

    Si tu n'arrive pas à construire ta requête directement en MDX, essaye avec les outils ad-hoc livré avec le produit sur l'interface web, au moins ça te donnera un début de requête.

  7. #7
    Membre du Club
    Femme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Janvier 2012
    Messages : 109
    Points : 56
    Points
    56
    Par défaut
    je cherche toujours et je teste toujours, j'ai trouvé crossJoin() mais ca marche seulement avec deux paramètres et pas plus.

  8. #8
    Membre averti

    Homme Profil pro
    Chargé de projets JEE
    Inscrit en
    Septembre 2002
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chargé de projets JEE
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2002
    Messages : 41
    Points : 317
    Points
    317
    Par défaut
    Bonjour

    CrossJoin n'accepte que deux sets.
    Il faut donc 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
    16
    17
    18
     
    SELECT 
    { 
    	CrossJoin ( 
    		{([TEMPS.ANNEE].[2009]), ([TEMPS.ANNEE].[2010])}, 
    		{([Measures].[MONTANT]), ([Measures].[Nombre de CREDIT])} 
    	) 
    } ON COLUMNS,
    { 
    	CrossJoin( 
    			{([AGENCE].[AGENCE.LIBELLEAGENCE].members)}, 
    			CrossJoin (
    				{([ETATCREDIT].[ETATCREDIT.ETATCREDIT].members)},
    				{([UTILISATEUR].[UTILISATEUR.NOMUTILISATEUR].members)}
    			)				
    		) 
    }		ON rows 
    FROM [cubeConcret]
    De cette façon, tu peux en utiliser autant que tu le désires.

    Bonne continuation !

  9. #9
    Membre du Club
    Femme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Janvier 2012
    Messages : 109
    Points : 56
    Points
    56
    Par défaut
    Merci infiniment, vous avez raison je vais essayé de l'utilisé espérant qu'il marche bien, je vais vous répondre le tôt possible.
    Merci.

  10. #10
    Membre averti

    Homme Profil pro
    Chargé de projets JEE
    Inscrit en
    Septembre 2002
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chargé de projets JEE
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2002
    Messages : 41
    Points : 317
    Points
    317
    Par défaut
    Bonjour,

    De rien !

    Pour plus d'info, un début de tutoriel sur MDX : http://tranchant.name/2012/05/mdx/

    Bonne continuation

Discussions similaires

  1. MDX avec 2 dimensions temps
    Par iza76 dans le forum SSAS
    Réponses: 2
    Dernier message: 14/01/2010, 18h10
  2. MDX + de 3 dimensions
    Par papy_taupe dans le forum SSAS
    Réponses: 2
    Dernier message: 16/06/2009, 11h56
  3. [SSRS][2k5]MDX query : valeur all d un paramètre
    Par hiline6 dans le forum SSRS
    Réponses: 0
    Dernier message: 14/01/2009, 18h35
  4. [SSRS][MDX] condition multiple dans requête
    Par stolx_10 dans le forum SSRS
    Réponses: 2
    Dernier message: 11/09/2008, 17h17
  5. Mdx lien entre dimension
    Par el_poitevin dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 26/06/2007, 13h40

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