Utilisation de l'instruction DRILLTHROUGH pour récupérer des données sources (MDX)
L'instruction MDX (Multidimensional Expressions) utilise l'instruction DRILLTHROUGH pour récupérer un jeu de lignes à partir des données sources d'une cellule d'un cube.
Pour exécuter une instruction DRILLTHROUGH sur un cube, une action d'extraction doit être définie pour ce dernier. Pour définir une action d'extraction, dans Outils de données SQL Server (SSDT), dans le Concepteur de cube, dans le volet Actions, dans la barre d'outils, cliquez sur Nouvelle action d'extraction. Dans la nouvelle action d'extraction, spécifiez le nom de l'action, la cible, la condition et les colonnes retournées par une instruction DRILLTHROUGH.
Syntaxe de l'instruction DRILLTHROUGH
L'instruction DRILLTHROUGH utilise la syntaxe suivante :
<drillthrough> ::= DRILLTHROUGH [<Max_Rows>] [<First_Rowset>] <MDX select> [<Return_Columns>]
< Max_Rows> ::= MAXROWS <positive number>
<First_Rowset> ::= FIRSTROWSET <positive number>
<Return_Columns> ::= RETURN <member or attribute> [, <member or attribute>]
La clause SELECT identifie la cellule du cube qui contient les données sources à récupérer. Cette clause SELECT est identique à une instruction MDX SELECT ordinaire, à la différence qu'un seul membre peut être spécifié sur chaque axe dans la clause SELECT. Si plusieurs membres sont spécifiés sur un axe, une erreur se produit.
La syntaxe <Max_Rows> spécifie le nombre maximum de lignes de chaque ensemble de lignes retourné. Si le fournisseur OLE DB utilisé pour la connexion à la source de données ne prend pas en charge DBPROP_MAXROWS, le paramètre <Max_Rows> est ignoré.
La syntaxe <First_Rowset> identifie la partition d'où l'ensemble de lignes est d'abord retourné.
La syntaxe <Return_Columns> identifie les colonnes de la base de données sous-jacente à retourner.
Exemple d'instruction DRILLTHROUGH
L'exemple suivant illustre l'utilisation de l'instruction DRILLTHROUGH. Dans cet exemple, l'instruction DRILLTHROUGH interroge les feuilles des dimensions Store, Product et Time le long de la dimension Stores (axe de découpage), puis retourne le groupe de mesures du service, l'ID de service et le prénom de l'employé.
DRILLTHROUGH
Select {Leaves(Store), Leaves(Product), Leaves(Time),*} on 0
From Stores
RETURN [Department MeasureGroup].[Department Id], [Employee].[First Name]