Requête MDX de base (MDX)
La requête de base MDX (Multidimensional Expressions) est l'instruction SELECT — la plus utilisée dans MDX. Si vous connaissez la méthode selon laquelle une instruction SELECT MDX doit spécifier un jeu de résultats, la syntaxe de l'instruction SELECT et la manière de créer une requête simple à l'aide de cette instruction, vous disposez alors de connaissances suffisamment solides pour comprendre comment utiliser MDX pour interroger des données multidimensionnelles.
Spécification d'un jeu de résultats
Dans MDX, l'instruction SELECT permet de spécifier un jeu de résultats doté d'un sous-ensemble de données multidimensionnelles qui ont été retournées à partir d'un cube. Pour spécifier un jeu de résultats, une requête MDX doit renfermer les informations suivantes :
- Le nombre d'axes ou d'ensembles de hiérarchies. Vous pouvez spécifier jusqu'à 128 axes dans une requête MDX.
- Les membres de chaque dimension à inclure sur chaque axe de la requête MDX.
- Le nom du cube qui définit le contexte de la requête MDX.
- Les membres d'un axe de secteur sur lequel des données sont découpées en tranches à partir des axes de requête. Pour plus d'informations sur les axes de secteur et de requête, consultez Restriction de la requête avec des axes de requête et de secteur (MDX).
Pour identifier les axes de requête, le cube qui définit le contexte de la requête et l'axe de secteur, l'instruction SELECT MDX utilise les clauses suivantes :
- Une clause SELECT qui détermine les axes de requête d'une instruction SELECT MDX. Pour plus d'informations sur la construction d'axes de requête dans une clause SELECT, consultez Spécification du contenu d'un axe de requête (MDX).
- Une clause FROM qui détermine quelle source de données multidimensionnelles doit être employée lors de l'extraction de données pour remplir l'ensemble de résultats de l'instruction SELECT MDX. Pour plus d'informations sur la clause FROM, consultez Instruction SELECT (MDX)
- Une clause WHERE qui, si elle est présente, détermine quelle dimension ou quel membre utiliser comme axe de secteur pour limiter l'extraction de données à une dimension ou à un membre spécifique. Pour plus d'informations sur la construction d'un axe de secteur dans une clause WHERE, consultez Spécification du contenu d'un axe de secteur (MDX).
Remarque : |
---|
Pour plus d'informations détaillées sur les diverses clauses de l'instruction SELECT, consultez Instruction SELECT (MDX). |
Syntaxe de l'instruction SELECT
La syntaxe qui suit illustre une instruction SELECT de base qui inclut l'utilisation des clauses SELECT, FROM et WHERE :
[ WITH <SELECT WITH clause> [ , <SELECT WITH clause> ... ] ]
SELECT [ * | ( <SELECT query axis clause>
[ , <SELECT query axis clause> ... ] ) ]
FROM <SELECT subcube clause>
[ <SELECT slicer axis clause> ]
[ <SELECT cell property list clause> ]
L'instruction SELECT MDX prend en charge d'autres éléments de syntaxe, par exemple le mot clé WITH, l'emploi de fonctions MDX pour construire des membres par calcul pour une inclusion dans un axe ou un axe de secteur, et la possibilité de retourner la valeur de propriétés de cellules spécifiques en tant que partie de la requête. Pour plus d'informations sur l'instruction SELECT MDX, consultez Instruction SELECT (MDX).
Comparaison de la syntaxe de l'instruction SELECT MDX par rapport à SQL
Le format de syntaxe de l'instruction SELECT MDX est semblable à celui de la syntaxe SQL. Il existe toutefois quelques différences :
- La syntaxe MDX distingue les jeux en plaçant les tuples ou les membres dans des accolades (caractères { et }). Pour plus d'informations sur la syntaxe d'un membre, d'un tuple et d'un jeu, consultez Utilisation de membres, de tuples et de jeux (MDX).
- Les requêtes MDX peuvent avoir jusqu'à 128 axes de requête dans l'instruction SELECT, mais seuls les cinq premiers axes ont un alias. Vous pouvez identifier un axe par sa position ordinale dans une requête MDX ou par l'alias de son axe, si l'axe en possède un. À l'instar d'une requête SQL, la clause FROM nomme la source des données pour la requête MDX. Toutefois, la clause FROM MDX est limitée à un seul cube. Des informations issues d'autres cubes peuvent être extraites, valeur par valeur, à l'aide de la fonction LookupCube.
- La clause WHERE décrit l'axe de secteur. Si aucune hiérarchie n'est mentionnée comme faisant partie d'une clause WHERE, Microsoft SQL Server 2005 Analysis Services (SSAS) considère que toute hiérarchie non explicitement incluse dans un axe de requête est implicitement incluse dans l'axe de secteur, et la hiérarchie est filtrée sur ses membres par défaut. La clause WHERE peut changer le processus de filtrage pour la hiérarchie spécifiée, et vous assurer ainsi un contrôle précis des données incluses.
Exemple d'instruction SELECT
L'exemple qui suit illustre une requête MDX de base qui utilise l'instruction SELECT. Cette requête retourne un jeu de résultats contenant le montant des ventes et des taxes 2002 et 2003 pour les secteurs du sud-ouest.
SELECT
{ [Measures].[Sales Amount],
[Measures].[Tax Amount] } ON COLUMNS,
{ [Date].[Fiscal].[Fiscal Year].&[2002],
[Date].[Fiscal].[Fiscal Year].&[2003] } ON ROWS
FROM [Adventure Works]
WHERE ( [Sales Territory].[Southwest] )
Dans cet exemple, la requête définit les informations de jeu de résultats suivantes :
- La clause SELECT définit les axes de requête comme les membres Sales Amount et Tax Amount de la dimension Measures, et les membres 2002 et 2003 de la dimension Date.
- La clause FROM indique que la source de données est le cube Adventure Works.
- La clause WHERE définit l'axe de secteur comme le membre Southwest de la dimension Sales Territory.
Notez que cet exemple de requête utilise également les alias des axes COLUMNS et ROWS. Les positions ordinales pour ces axes auraient également pu être utilisées. L'exemple qui suit montre comment la requête MDX pourrait également être écrite, en utilisant la position ordinale de chaque axe :
SELECT
{ [Measures].[Sales Amount],
[Measures].[Tax Amount] } ON 0,
{ [Date].[Fiscal].[Fiscal Year].&[2002],
[Date].[Fiscal].[Fiscal Year].&[2003] } ON 1
FROM [Adventure Works]
WHERE ( [Sales Territory].[Southwest] )
Important : |
---|
Normalement, les jeux sont évalués dans le contexte à plus grande échelle du cube. Néanmoins, le Mot clé EXISTING (MDX) contraint les jeux à être évalués dans le contexte actuel. |