Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Bohrt die Mitglieder eines Sets bis auf eine Ebene unter die niedrigste Ebene, die im Set dargestellt wird.
Die Angabe der Ebene, auf der man nach unten bohrt, ist optional, aber wenn du das Level einstellst, kannst du entweder einen Level-Ausdruck oder den Index-Level verwenden. Diese Argumente schließen sich gegenseitig aus. Schließlich können Sie, wenn berechnete Mitglieder in der Abfrage vorhanden sind, ein Argument angeben, um sie in die Zeilenmenge einzubeziehen.
Syntax
DrilldownLevel(Set_Expression [,[Level_Expression] ,[Index]] [,INCLUDE_CALC_MEMBERS])
Argumente
Set_Expression
Ein gültiger Multidimensional Expressions (MDX)-Ausdruck, der eine Menge zurückgibt.
Level_Expression
(optional) Ein MDX-Ausdruck, der explizit die Ebene angibt, auf der nach unten gebohrt werden soll. Wenn Sie einen Level-Ausdruck angeben, überspringen Sie das untenstehende Indexargument.
Index
(optional) Ein gültiger numerischer Ausdruck, der die Hierarchienummer angibt, in die innerhalb der Menge eingedrungen werden soll. Du kannst die Indexstufe statt Level_Expression verwenden, um explizit das Level zu identifizieren, auf dem du bohren solltest.
Include_Calc_Members
(optional) Eine Flagge, die angibt, ob berechnete Mitglieder, falls vorhanden, auf der Drilldown-Ebene einbezogen werden sollen.
Bemerkungen
Die DrilldownLevel-Funktion liefert eine Menge von Kindmitgliedern in einer hierarchischen Reihenfolge zurück, basierend auf den im angegebenen Satz enthaltenen Mitgliedern. Die Ordnung bleibt unter den ursprünglichen Mitgliedern der angegebenen Menge erhalten, mit der Ausnahme, dass alle im Ergebnissatz der Funktion enthaltenen Kindmitglieder unmittelbar unter ihrem Elternteil enthalten sind.
Bei einer mehrstufigen hierarchischen Datenstruktur kann man explizit eine Ebene wählen, auf der man nachbohren möchte. Es gibt zwei sich gegenseitig ausschließende Möglichkeiten, das Level anzugeben. Der erste Ansatz besteht darin, das level_expression-Argument mit einem MDX-Ausdruck zu setzen, der das Level zurückgibt. Eine alternative Methode ist es, das Indexargument mit einem numerischen Ausdruck zu verwenden, der das Level nach Zahl angibt.
Wenn ein Ebenenausdruck angegeben ist, konstruiert die Funktion eine Menge in hierarchischer Reihenfolge, indem sie nur die Kinder jener Mitglieder abruft, die sich auf der angegebenen Ebene befinden. Wenn ein Level-Ausdruck angegeben ist und kein Mitglied auf dieser Ebene vorhanden ist, wird der Level-Ausdruck ignoriert.
Wenn ein Indexwert angegeben ist, konstruiert die Funktion eine Menge in hierarchischer Reihenfolge, indem sie nur die Kinder jener Mitglieder abruft, die sich auf der nächstniedrigsten Ebene der in der angegebenen Menge referenzierten Hierarchie befinden, gegeben ein nullbasierter Index.
Wenn weder ein Niveauausdruck noch ein Indexwert angegeben sind, konstruiert die Funktion eine Menge in hierarchischer Reihenfolge, indem sie nur die Kinder jener Mitglieder abruft, die sich auf der niedrigsten Ebene der ersten Dimension befinden, die in der angegebenen Menge referenziert ist.
Die Abfrage der XMLA-Eigenschaft MdpropMdxDrillFunctions ermöglicht es Ihnen, das Unterstützungsniveau zu überprüfen, das der Server für die Bohrfunktionen bietet; siehe Unterstützte XMLA-Eigenschaften (XMLA) für Details .
Beispiele
Sie können die folgenden Beispiele im MDX-Abfragefenster in SSMS mit dem Adventure Works Cube ausprobieren.
Beispiel 1 – zeigt minimale Syntax
Das erste Beispiel zeigt die minimale Syntax für DrilldownLevel. Das einzige erforderliche Argument ist ein Mengenausdruck. Beachten Sie, dass Sie bei dieser Abfrage die übergeordneten [Alle Kategorien] und Mitglieder der nächsten Ebene nach unten bekommen: [Zubehör], [Fahrräder] und so weiter. Obwohl dieses Beispiel einfach ist, zeigt es den Grundzweck der DrilldownLevel-Funktion , die darin besteht, zur nächsten Ebene darunter zu bohren.
SELECT DRILLDOWNLEVEL({[Product].[Product Categories]} * {[Sales Territory].[Sales Territory]}}) ON COLUMNS
FROM [Adventure Works]
Beispiel 2 – alternative Syntax unter Verwendung eines expliziten Indexniveaus
Dieses Beispiel demonstriert die alternative Syntax, bei der das Indexniveau durch einen numerischen Ausdruck angegeben wird. In diesem Fall ist das Indexniveau 0. Für einen Null-basierten Index ist dies das niedrigste Niveau.
SELECT
DRILLDOWNLEVEL({[Product].[Product Categories]} * {[Sales Territory].[Sales Territory]},,0) ON COLUMNS
FROM [Adventure Works]
Beachten Sie, dass die Ergebnismenge identisch mit der vorherigen Abfrage ist. Als Faustregel gilt: Das Festlegen des Indexniveaus ist unnötig, es sei denn, du möchtest, dass das Bohren auf einem bestimmten Level beginnt. Führe die vorherige Abfrage erneut aus, setze den Indexwert auf 1 und dann auf 2. Mit dem Indexwert auf 1 beginnt der Drilldown auf der zweiten Ebene der Hierarchie. Mit dem Indexwert auf 2 beginnt das Drilldown auf der dritten Ebene, der höchsten Ebene in diesem Beispiel. Je höher der numerische Ausdruck, desto höher das Indexniveau.
Beispiel 3 – demonstriert einen Level-Ausdruck
Das nächste Beispiel zeigt, wie man einen Level-Ausdruck verwendet. Gegeben eine Menge, die eine hierarchische Struktur repräsentiert, ermöglicht die Verwendung eines Level-Ausdrucks, eine Ebene in der Hierarchie auszuwählen, um mit dem Drilldown zu beginnen.
In diesem Beispiel beginnt die Ebene des Drilldowns bei [City], als zweites Argument der DrilldownLevel-Funktion . Wenn Sie diese Abfrage ausführen, beginnt das Bohren auf [Stadt]-Ebene, für die Bundesstaaten Washington und Oregon. Laut der DrilldownLevel-Funktion umfasst das Ergebnisset auch Mitglieder auf der nächsten Ebene, [Postleitzahlen].
SELECT [Measures].[Internet Sales Amount] ON COLUMNS,
NON EMPTY (
DRILLDOWNLEVEL(
{[Customer].[Customer Geography].[Country].[United States],
DESCENDANTS(
{ [Customer].[Customer Geography].[State-Province].[Washington],
[Customer].[Customer Geography].[State-Province].[Oregon]},
[Customer].[Customer Geography].[City]) } ,
[Customer].[Customer Geography].[City] ) ) ON ROWS
FROM [Adventure Works]
Beispiel 4 – einschließlich berechneter Mitglieder
Das letzte Beispiel zeigt ein berechnetes Mitglied, das am unteren Rand der Ergebnismenge erscheint, wenn man die include_calculated_members-Flagge hinzufügt. Beachte, dass das Flag als vierter Parameter angegeben ist.
Dieses Beispiel funktioniert, weil das berechnete Mitglied auf derselben Ebene wie die nicht berechneten Mitglieder liegt. Das berechnete Mitglied [West Coast] besteht aus Mitgliedern aus [USA] sowie allen Mitgliedern, die eine Stufe unter der [USA] liegen.
WITH MEMBER
[Customer].[Customer Geography].[Country].&[United States].[West Coast] AS
[Customer].[Customer Geography].[State-Province].&[OR]&[US] +
[Customer].[Customer Geography].[State-Province].&[WA]&[US] +
[Customer].[Customer Geography].[State-Province].&[CA]&[US]
SELECT [Measures].[Internet Order Count] ON 0,
DRILLDOWNLEVEL([Customer].[Customer Geography].[Country].&[United States],,,INCLUDE_CALC_MEMBERS) on 1
FROM [Adventure Works]
Wenn du nur die Flagge entfernst und die Abfrage erneut ausführst, erhältst du die gleichen Ergebnisse, abzüglich des berechneten Mitglieds [West Coast].