Vous êtes sur la page 1sur 46

Modélisation des Data Warehouse

Master Professionnel
Management Digital et Systèmes d'Information
(2MDSI)

Chapitre 5
Manipulation des entrepôts de données
(Requetes MDX)

Wahiba Ben Abdessalem


Plan du cours
❑ MDX versus SQL
❑Structure générale d’une requête MDX
❑Spécification d’un axe en MDX
❑Requêtes de base
❑Fonctions sur les membres et les dimensions
❑Exercices

2 Wahiba Ben Abdessalem ISG-Tunis


MDX versus SQL

• Comme SQL pour les bases de données relationnels, il existe des


langages de requêtes pour l’utilisation des OLAP.
L’inconvénient est qu’il n’y a pas de langage universel. Mais, on
peut distinguer deux tendances :

• MDX (MultiDimensional eXpressions) intégré à Microsoft depuis


SQL Server 2005.

• OLAP DML (Data Manipulation Language) intégré à Oracle 10g.

3
MDX versus SQL
• MDX est fait pour naviguer dans les bases multidimensionnelles et pour
définir des requêtes sur tous leurs objets (dimensions, hiérarchies, niveaux,
membres et cellules) afin d'obtenir (simplement) une représentation sous
forme de tableaux croisés
• MDX ressemble à SQL par ses mots clé SELECT, FROM, WHERE, mais :
o SQL construit des vues relationnelles
o MDX construits des vues multidimensionnelles des données
• Analogies entre termes multidimensionnels (MDX) et relationnels (SQL) :
Multidimensionne (MDX) Relationnel (SQL)
Cube Table
Plusieurs colonnes liées ou une table de
Dimension
dimension
Niveau de hierarchie (Level) Colonne (attribut)
Mesure (measure) Colonne (attribut) 4
Membre de dimension Valeur dans une colonne et une ligne de la table
MDX versus SQL
MDX SQL
Avantages Avantages
• Modélisation des données : définition des • Grande base d'utilisateurs
dimensions, hiérarchies, mesure, à partir de diverses • Sémantique des requêtes facile à comprendre
sources de données • Les résultats sont faciles à visualiser : scalaires ou
• Navigation simple dans la dimension temporelle et tableaux 2D
hiérarchies • Différentes manières de relier les tables : jointures,
• Des expressions relativement simples pour tables dérivées, requêtes corrélées, etc.
demandes commerciales souvent utilisées
• Rapide, du fait de l'existence d'agrégations
Désavantages Désavantages
• Effort supplémentaire pour concevoir (design) un • Les tables doivent être jointes explicitement dans
cube et configurer des agrégations une requête
• Concepts difficiles à appréhender : contexte actuel, • Syntaxe parfois peu intuitive et complexe pour
phases d'exécution, etc. exprimer des requêtes analytiques
• Certaines opérations sont difficiles à exprimer, • Pas de concept d'ordre des lignes et de hiérarchies :
comme le classement sur plusieurs critères les dimensions de navigation peuvent être complexes
• Pas si performant pour les types de requêtes 5
utilisées dans l'analyse des données
MDX versus SQL
•Structure générale dʼune requête SQL :
SELECT column1, column2, …, columnn FROM table
•Structure générale dʼune requête MDX :
SELECT axis1 ON COLUMNS, axis2 ON ROWS FROM cube
• FROM spécifie la source de données :
o en SQL : une ou plusieurs tables
o en MDX : un cube
• SELECT indique les résultats que lʼon souhaite récupérer par la requête :
-en SQL :
• une vue des données en 2 dimensions (lignes (rows) et colonnes (columns))
• les lignes ont la même structure définie par les colonnes
-en MDX :
• nb quelconque de dimensions pour former les résultats de la requête.
• terme d'axe pour éviter confusion avec les dimensions du cube.
• pas de signification particulière pour les rows et les columns, mais il faut
6
définir chaque
6 axe : axe1 définit l'axe horizontal et axe2 définit l'axe vertical
RAPPEL DE MODÉLISATION MULTIDIMENSIONNELLE

Région
temps

Région produits
2020 2021 2022
temps Europe AudioV 100 200 300
PC 225 245 240
Afrique AudioV 163 152 145
PC 187 174 184
produits

Cube de donnés 7
(nommé vente)
STRUCTURE GÉNÉRALE D’UNE REQUÊTE MDX
MEMBRE

▪Un membre est une instance d'un niveau d’une dimension, spécifié
entre crochets [..] .
▪ Exemples:
▪ [PC], [AudioV] sont les membres de la dimension Produit
▪ [produit].[PC] : les produits PC temps

▪ [produit].[PC].[Acer] : les produits PC de la marque Acer


Région produits
2020 2021 2022
Europe AudioV 100 200 300
PC 225 245 240
8
Afrique AudioV 163 152 145
PC 187 174 184
STRUCTURE GÉNÉRALE D’UNE REQUÊTE MDX
TUPLE
▪ Un tuple est l'intersection d'un (et un
[Temps].[2021], [produit].[PC],
seul) membre tiré de chacune des [Region].[Europe]
dimensions du cube. Un tuple identifie
une seule cellule du cube. Tuple

▪ La façon la plus simple de comprendre 2020 2021 2022


Europe AudioV 100 200 300
un tuple est de regarder une feuille PC 225 245 240

Excel. Dans la feuille Excel, une Afrique AudioV 163 152 145
PC 187 174 184
cellule est identifiée par A1, A2, A3,
B1, B2, B3, etc.
9
STRUCTURE GÉNÉRALE D’UNE REQUÊTE MDX (5/7)
MESURE
Dans un tuple, les mesures sont traitées comme une
dimension particulière, nommée [Measures]
▪ Exemples:
▪ SELECT {[Measures].[Quantité vendue],
[produit].[PC].[Acer]} ON COLUMNS
FROM [ventes]

Résultat = La quantité vendue du produit PC de la marque Acer

10
STRUCTURE GÉNÉRALE D’UNE REQUÊTE MDX
SELECT

Select
[Axes spécifiés]
From
[Cube spécifié]
Where
[Filtres spécifiés]

Les crochets peuvent être optionnels sauf pour les noms avec
11
espaces intégrés
STRUCTURE GÉNÉRALE D’UNE REQUÊTE MDX SELECT
Le mot clé SELECT marque le début de la requête. Il précise ce que vous
voulez sélectionner.
Le mot clé ON est utilisé pour organiser les données sélectionnées. MDX utilise
le concept d'axes. Les données sélectionnées à partir d'une dimension peuvent
être placées sur un axe.
SELECT n'est pas limité à deux axes. Nous pourrions avoir jusqu'à 128 axes

Remarque : Une requête qui utilise l'axe 1 doit également utiliser l'axe 0. Une
requête qui utilise l'axe 2 doit également utiliser l'axe 1 et l'axe 0. Vous ne
pouvez pas ignorer un axe dans une requête.

Dans la clause FROM, nous spécifions le cube qui sera utilisé pour interroger
12
les données spécifiées dans la clause SELECT.
STRUCTURE GÉNÉRALE D’UNE REQUÊTE MDX SELECT
Dans la requête ci-dessous, nous avons sélectionné les membres de la
dimension [Measure] et les avons placés sur l'axe 0, ou COLUMNS. Et nous
avons sélectionné les membres de la dimension [Region] et les avons placés
sur l'axe 1, ou ROWS.

SELECT
{
([Measures].[quantité vendue], [produit].[PC]), PC AudioV
([Measures].[quantité vendue], [produit].[AudioV]) }
ON AXIS(0), 2020
{ 2021
([Temps].[2020]),
([Temps].[2021]) }
ON AXIS(1)
13
FROM [ventes]
STRUCTURE GÉNÉRALE D’UNE REQUÊTE MDX SELECT

▪ On peut avoir la même chose avec : « COLUMNS »


et « ROWS » :
▪ SELECT
{ ([Measures].[quantité vendue], [produit].[PC]),
([Measures].[quantité vendue], [produit].[Tv]) } ON
COLUMNS,
{ ([Temps].[2020], [Temps].[2021]) }
ON ROWS
FROM [ventes]

14
STRUCTURE GÉNÉRALE D’UNE REQUÊTE MDX SELECT

 SELECT Measures.MEMBERS ON COLUMNS,


 NONEMPTY(Customer.Country.MEMBERS) ON ROWS

 FROM Sales

15
SPÉCIFICATION D’UN AXE EN MDX
▪ Une autre façon plus simple :
▪ Définir un axe et présenter sur l’axe tous les membres d’une
dimension : [nom de la dimension].CHILDREN
▪ Exemple
SELECT
{[Temps]. [année].CHILDREN} ON COLUMNS,
{[Régions].[pays]. CHILDREN} ON ROWS
FROM [ventes] 2008 2009 2020 2021 2022

France

Espagne

Tunisie
16
Italie

Canada
SPÉCIFICATION D’UN AXE EN MDX
▪ Exemple
SELECT
{ [Temps]. [année].CHILDREN } ON COLUMNS,
{ [Régions].[pays]. CHILDREN } ON ROWS
FROM [ventes]
Remarque : Comme la mesure
n’est pas précisée, c’est une mesure
2008 2009 2020 2021 2022
par défaut (default mesure)

France

Espagne

Tunisie

Italie
Canada

L’axe horizontal (columns) contient tous les membres de la dimension temps (les années)
17
L’axe vertival est (rows) contient tous les membres du niveau « pays » de la dimension
"régions »
SPÉCIFICATION D’UN AXE EN MDX
▪ Une autre façon simple Aussi:
▪ Définir un axe et présenter sur l’axe tous les membres d’une
dimension : [nom de la dimension].MEMBERS
▪ Exemple
SELECT
{[Temps].[année].MEMBERS} ON COLUMNS,
{[Régions].[pays].MEMBERS} ON ROWS
2008 2009 2020 2021 2022
FROM [ventes]
Tous
France
Espagne

Tunisie
18
Italie
Canada
SPÉCIFICATION D’UN AXE EN MDX
"CHILDREN" et "MEMBERS"

"MEMBERS" et " CHILDREN"


sont souvent utilisés de manière interchangeable pour représenter les éléments
qui composent une hiérarchie dimensionnelle.

Par exemple, une hiérarchie "Pays" avec des membres tels que "France",
"Allemagne" et "Espagne"
[Pays].CHILDREN
donnera la mesure spécifiée pour les membres "France", "Allemagne" et
"Espagne".
[Pays].MEMBERS
Donnera la mesure spécifiée pour les membres "France", "Allemagne",
"Espagne", mais aussi celle pour tous les autres membres pour tous les pays.
19
Requêtes de base
OPÉRATION SLICE
▪ Dans MDX l’opération de Slice est traitée par une clause WHERE :
SELECT
{[temps]. [année]. MEMBERS} ON COLUMNS,
{ [Regions].[pays].MEMBERS } ON ROWS
FROM [ventes]
WHERE ([produits].[produit Group]. [Computers])

La mesure retournée est par


défaut (exp :quantité vendue )
Les computers pour les computers dans tous les
pays et pour toutes les années
Les années
20

Les pays (tous)


Requêtes de base
OPÉRATION SLICE
▪ Autre exemple:
SELECT Measures.MEMBERS ON COLUMNS,
[Order Date].Year.MEMBERS ON ROWS
FROM Sales
WHERE (Customer.Country.France)

Retourne toutes les mesures pour la France

21
Requêtes de base
OPÉRATION DICE
▪ Plusieurs membres de différentes hiérarchies peuvent être ajoutés à la clause
WHERE. La requête suivante affiche les valeurs de toutes les mesures pour
toutes les années pour les clients résidant en France et ayant acheté des
produits de la catégorie boissons (Beverages) :

SELECT Measures.MEMBERS ON COLUMNS,


[Order Date].Year.MEMBERS ON ROWS
FROM Sales
WHERE (Customer.Country.France, Product.Categories.Beverages)
22
Requêtes de base
OPÉRATION DICE
▪ Pour utiliser plusieurs membres de la même hiérarchie, nous devons inclure un
ensemble dans la clause WHERE. Par exemple, la requête suivante affiche les
valeurs de toutes les mesures pour toutes les années pour les clients qui ont
acheté des produits dans la catégorie boissons et résider en Allemagne ou en
France :
SELECT Measures.MEMBERS ON COLUMNS,
[Order Date].Year.MEMBERS ON ROWS
FROM Sales
WHERE ( { Customer.Country. Allemagne, Customer.Country.France },
Product.Categories.Beverages)

23
Requêtes de base
NOT EMPTY
Pour filtrer les valeurs "non vides" dans MDX, vous pouvez
utiliser la fonction MDX "NON EMPTY :

24
Requêtes de base
OPÉRATION ROLLUP ET DRILLDOWN

▪ DrilldownLevel( <List> , <Integer> )


▪ or
▪ DrilldownLevel( <List> , <Level> )

▪ DrillupLevel( <List> , <Level> )

25
Requêtes de base
OPÉRATION DRILLUPLEVEL

▪ DrillupLevel( <Liste> , <Niveau> )


 La fonction DrillupLevel renvoie un ensemble de membres organisés
hiérarchiquement en fonction des membres inclus dans l'ensemble
spécifié.
 Si une expression de niveau est spécifiée, la fonction DrillupLevel
construit l'ensemble en récupérant uniquement les membres qui
sont au-dessus du niveau spécifié.
 Si aucune expression de niveau n'est spécifiée, il y aura un masquage
du niveau le plus bas
26
Requêtes de base
OPÉRATION DRILLUPLEVEL
 Exemple:

Cube AnalyseVentes

27
Requêtes de base
OPÉRATION DRILLUPLEVEL
 Exemple:

AnalyseVentes

28
Requêtes de base
OPÉRATION DRILLDOWNLEVEL
DrilldownLevel( <Liste> , <Niveau> )
Retourne : un ensempbe complété des enfants du plus bas niveau du set d’origine
 Exemple:

AnalyseVentes

29

On voit que le niveau le plus bas de l’arbre précédent (2ème trimestre 2011) a bien été développé
Requêtes de base
OPÉRATION DRILLDOWNLEVEL

Si on souhaite descendre d’un étage autre que les feuilles de plus bas niveau, on peut utiliser le paramètre
niveau: descendre le niveau semestre
 Exemple:

AnalyseVentes

30
FONCTIONS SUR LES MEMBRES ET LES DIMENSIONS

Premier enfant du parent d'un membre

31
FONCTIONS SUR LES MEMBRES ET LES DIMENSIONS

PrevMember([Année].[2019])
Cela retournera le membre de l'année 2018 s'il existe dans l'hierarchie.

SELECT [Measures].[TotalSales] ON COLUMNS,


[Time].[Year].FirstChild ON ROWS
FROM [Sales]

Cela renverra le premier enfant de la hiérarchie [Time], qui est généralement le


premier membre de la hiérarchie (par exemple, la première année dans la liste des
années).

[Europe].[Allemagne].FirstSibling
renverra "Autriche" s’ il est le premier membre de
l'ensemble "Europe" 32
EXERCICES
Exercice1
Considérez le cube (schéma multidimensionnel ) nommé
cinémacube :
Qui contient 4 dimensions
• Film(idFilm, titre, annéeParit, description);
• Personne(idPersonne, nom, dateNaissance, tel);
• GenreFilm(idGFilm, genre);
• Date (date, année, mois, semaine, jour)

Et une table des faits avec 2 meusres à observer :


• FaitFilm(idFilm, idPersonne, idGFilm, date, nb
filmVu, CA); 33
EXERCICES
(EXERCICE1 SUITE)
1.Donner la requête MDX permettant d’avoir le nombre de films
vus par genre de film durant l’année 2022.
2. .Donner la requête MDX permettant d’avoir le CA par films
chaque année.
3. Si on suppose que la dimension GenreFilm comprend le
niveau « catégorieAge » et la catégorieAge comprend les niveaux
: enfant, adultes. Sachant que les membres du niveau enfant =
« 4-6, 7-10, 11-13 », donner la requête MDX permettant d’avoir
le nombre de films vus par genre de film (acion, horreur,…),
chaque année par les enfants de 11-13 ans.
4. .Donner la requête MDX permettant d’observer toutes les
mesures pour chaque personne durant toutes les années pour un
genre de film d’action.
34
5. Même chose que 4. avec juste les années 2020 et 2021
EXERCICE 2
 Le schéma du cube SiteCube, constitué des Tables suivantes :
 Session(SessionKey,TypeSession, …)

 TypeSession peut etre « SessionSansAchat », « SessionAvecPaiement »,…

 Date(DateKey, année, Mois, JourDeMois, JourDeSemaine,…)

 Visiteur(VisiteurKey, AdresseIP, Nom, Prenom, FuseauHoraire, …)

 Produit(ProduitKey, Designation, Couleur, TypeProduit, …)

 Page(PageKey,TypePage…)

 TypePage peut etre « Information », « Formulaire »,…

 Promotion(PromotionKey, TauxPromotion, …)

 Requete(SessionKey, DateKey, VisiteurKey, ProduitKey, PageKey,


PromotionKey, NBPagesVisitées,
NombreSecondesPasséesDansLaPage, MontantAchétéDansLaPage).
35
(EXERCICE 2 SUITE)

1. Donner la requête MDX, permettant d’avoir le nombre de pages visitées


par session et par mois.
2. Donner la requête MDX, permettant d’avoir le montant des achats par
visiteur durant toutes les années, uniquement pour le produit « montre »
et la promotion "50% «
3. Donner la requête MDX, permettant d’avoir le nombre de secondes
passées sur les pages P1 et P2 par visiteur, durant les mois d’octobre et
novembre.
Donner la requête MDX équivalente, mais permettant de
 4.
visualiser le résultat uniquement pour les visiteurs V1, V2 et V3
36
PRINCIPALES SOURCES POUR CE CHAPITRE

• https://www.iccube.com/support/documentation/mdx_tutorial/gentle_introduction.php

• https://docplayer.fr/8319111-Entrepots-de-donnees-introduction-au-langage-mdx-multi-
dimensional-extensions-pour-l'olap.html

• https://www.youtube.com/watch?v=CIz9E1vbi7c
• https://www.youtube.com/watch?v=FqlDM_HzkO4
• 37
CORRECTION DES EXERCICES
Exercice 1

1.Donner la requête MDX permettant d’avoir le nombre de films vus par genre de film durant l’année
2022. Genre documentaire Genre science fiction
2022 x y
SELECT {[measures]. [nbfilmVu], [GenreFilm].[genre].MEMBERS} ON COLUMNS
[Date].[annee].[2022] ON ROWS
FROM cinémacube

Ou
SELECT {[measures]. [nbfilmVu], [GenreFilm].[genre].MEMBERS} ON COLUMNS
FROM cinémacube
WHERE [Date].[annee].[2022]

• 38
CORRECTION DES EXERCICES
Exercice 1
2. Donner la requête MDX permettant d’avoir le CA par films chaque année.

Film 1 Film2 ….
2021 x y
2022 v w
…..
Film 1 Film2 …
SELECT {[measures]. [CA], [Film].[titre].MEMBERS} ON COLUMNS .
[Date].[annee].MEMBERS ON ROWS Nbfilm x+y+v+w
FROM cinémacube
2021 x y
Ou 2022 v w
SELECT {[measures]. [CA], [Film].[titre].CHILDREN} ON COLUMNS …..
[Date].[annee].CHILDREN ON ROWS
FROM cinémacube

Remarque: La différence entre MEMBERS et CHILDREN: MEMBERS donne le CA global de tous les• 39
ans pour tous les films, en plus des CA année par année pour chaque film. CHILDREN donne
uniquement les CA année par année pour chaque film.
CORRECTION DES EXERCICES
Exercice 1
3. Si on suppose que la dimension GenreFilm comprend le niveau « catégorieAge » et la catégorieAge
comprend les niveaux : enfant, adultes. Sachant que les membres du niveau enfant = « 4-6, 7-10, 11-
13 », donner la requête MDX permettant d’avoir le nombre de films vus par genre de film
(exemple action, horreur,…), chaque année par les enfants de 11-13 ans.
G1 G2 ….
GenreFilm(idGFilm, genre, catégorieAge)
2021 x y 11-13ans
2022 v w
…..
SELECT {[measures]. [nbfilmVu], [GenreFilm].[genre]. CHILDREN} ON COLUMNS
[Date].[annee]. CHILDREN ON ROWS
FROM cinémacube
WHERE ([GenreFilm].[catégorieAge]. [enfant].[11-13]

• 40
CORRECTION DES EXERCICES
Exercice 1
4.Donner la requête MDX permettant d’observer toutes les mesures pour chaque personne durant
toutes les années pour un genre de film d’action. m1 m2 ….
Film d’action
2021 x y
2022 v w
…..
SELECT [measures]. CHILDREN ON 0
[Date].[annee]. CHILDREN ON 1
[Personne].[nom]. CHILDREN ON 2
FROM cinémacube
WHERE ([GenreFilm].[genre].[action]
Ou

SELECT {[measures]. [nbFilmVu], [measures]. [CA] } ON 0


[Date].[annee]. CHILDREN ON 1
[Personne].[nom]. CHILDREN ON 2
FROM cinémacube
WHERE ([GenreFilm].[genre].[action] • 41
CORRECTION DES EXERCICES
Exercice 1
5. Même chose que 4. avec juste les années 2009 et 2020
Film d’action m1 m2 ….
2021 x y
2022 v w
…..

SELECT [measures ]. CHILDREN ON 0


{[Date].[annee].[2020], [Date].[annee].[2021]} ON 1
[Personne].[nom]. CHILDREN ON 2
FROM cinémacube
WHERE ([GenreFilm].[genre].[action]

Ou

SELECT {[measures]. CHILDREN } ON 0


[Personne].[nom]. CHILDREN ON 1 • 42
FROM cinémacube
WHERE ([GenreFilm].[genre].[action], {[Date].[annee].[2020], [Date].[annee].[2021]})
CORRECTION DES EXERCICES
Exercice 2
1. Donner la requête MDX, permettant d’avoir le nombre de pages visitées par session et par mois.
S1 S2 ….
m1 x y
m2 v w
…..

SELECT {[measures].[NBPagesVisitées], [Session].[typeSession].CHILDREN } ON COLUMNS


[Date].[Mois]. CHILDREN ON ROWS
FROM SiteCube

• 43
ORRECTION DES EXERCICES
Exercice 2
2. Donner la requête MDX, permettant d’avoir le montant des achats par visiteur durant toutes les
années, uniquement pour le produit « montre » et la promotion "50% " V1 V2 ….
a1 x y
a2 v w
…..

SELECT {[measures].[MontantAchétéDansLaPage], [Visiteur].[nom].CHILDREN} ON COLUMNS


[Date].[annee]. CHILDREN ON ROWS
FROM SiteCube

WHERE ([Produit].[designation].[montre], [Promotion].[TauxPromotion].[0,50])

• 44
CORRECTION DES EXERCICES
Exercice 2
3. Donner la requête MDX, permettant d’avoir le nombre de secondes passées sur les pages P1 et P2 par
visiteur, durant les mois d’octobre et novembre.

--le nombre est cumulé pour octobre et novembre

SELECT { [measures].[NombreSecondesPasséesDansLaPage], [Page].[typePage].[P1]


[measures].[NombreSecondesPasséesDansLaPage], [Page].[typePage].[P2]} ON COLUMNS
[Visiteur].[nom].CHILDREN ON ROWS
P1 P2
FROM SiteCube V1 x y
WHERE (Date].[Mois].[Octobre], Date].[Mois].[Novembre])
V2 v w
Ou le nombre pour octobre et novembre séparés sur un 3eme axe …..

SELECT {[measures].[NombreSecondesPasséesDansLaPage], [Page].[typePage].[P1]


[measures].[NombreSecondesPasséesDansLaPage], [Page].[typePage].[P2]} ON 0 --ou bien
AXIS 0
[Visiteur].[nom].CHILDREN ON 1 --ou bien AXIS 1
{[Date].[Mois].[Octobre], Date].[Mois].[Novembre]} ON 2 --ou bien AXIS 2 • 45

FROM SiteCube
CORRECTION DES EXERCICES
Exercice 2
4. Donner la requête MDX équivalente, mais permettant de visualiser le résultat uniquement pour
les visiteurs V1, V2 et V3
--le nombre est cumulé pour octobre et novembre

SELECT {[measures].[NombreSecondesPasséesDansLaPage], [Page].[typePage].[P1]


[measures].[NombreSecondesPasséesDansLaPage],[Page].[typePage].[P2]} ON
COLUMNS
{[Visiteur].[nom].[V1], [Visiteur].[nom].[V2], [Visiteur].[nom].[V3]} ON ROWS
P1 P2
FROM SiteCube V1 x y
WHERE (Date].[Mois].[Octobre], Date].[Mois].[Novembre])
V2 v w
Ou le nombre pour octobre et novembre séparés sur un 3eme axe V3 z u

SELECT {[measures].[NombreSecondesPasséesDansLaPage], [Page].[typePage].[P1]


[measures].[NombreSecondesPasséesDansLaPage], [Page].[typePage].[P2]} ON 0 --ou
bien AXIS 0
{[Visiteur].[nom].[V1], [Visiteur].[nom].[V2], [Visiteur].[nom].[V3]} ON 1 --ou bien AXIS 1
{[Date].[Mois].[Octobre], Date].[Mois].[Novembre]} ON 2 --ou bien AXIS 2 • 46

FROM SiteCube

Vous aimerez peut-être aussi