Utilizzo dell'istruzione DRILLTHROUGH per il recupero di dati di origine (MDX)
Nel linguaggio MDX (Multidimensional Expressions) è disponibile l'istruzione DRILLTHROUGH, che consente di recuperare un set di righe dai dati di origine per una cella di un cubo.
Per eseguire un'istruzione DRILLTHROUGH
su un cubo, è necessario definire un'azione drill-through per tale cubo. Per definire un'azione drill-through, in SQL Server Data Tools (SSDT), in Cube Designer, nel riquadro Azioni, sulla barra degli strumenti fare clic su Nuova azione drill-through. Nella nuova azione drill-through specificare il nome, la destinazione e la condizione dell'azione, nonché le colonne restituite dall'istruzione DRILLTHROUGH
.
Sintassi dell'istruzione DRILLTHROUGH
La sintassi dell'istruzione DRILLTHROUGH
è la seguente:
<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 clausola SELECT
identifica la cella del cubo che contiene i dati di origine da recuperare. Questa clausola SELECT
è identica a una normale istruzione SELECT
MDX, con la differenza che in questo caso nella clausola SELECT
è possibile specificare solo un membro per ogni asse. Se su un asse sono specificati più membri, verrà generato un errore.
La sintassi <Max_Rows>
specifica il numero massimo di righe in ogni set di righe restituito. Se il provider OLE DB utilizzato per connettersi all'origine dei dati non supporta DBPROP_MAXROWS
, l'impostazione <Max_Rows>
verrà ignorata.
La sintassi <First_Rowset>
identifica la partizione il cui set di righe viene restituito per primo.
La sintassi <Return_Columns>
identifica le colonne del database sottostante da restituire.
Esempio di istruzione DRILLTHROUGH
Nell'esempio seguente viene illustrato l'utilizzo dell'istruzione DRILLTHROUGH
. In questo esempio l'istruzione DRILLTHROUGH esegue una query sugli elementi foglia delle dimensioni Store, Product e Time, lungo la dimensione Stores (l'asse di sezionamento), e quindi restituisce il gruppo di misure del reparto, l'ID del reparto e il nome del dipendente.
DRILLTHROUGH
Select {Leaves(Store), Leaves(Product), Leaves(Time),*} on 0
From Stores
RETURN [Department MeasureGroup].[Department Id], [Employee].[First Name]