2016-05-09 8 views
2

Ich versuche MDX zu lernen. Ich bin ein erfahrener SQL-Entwickler.MDX - 3rd + Dimension Beispiel benötigt

Ich versuche, ein Beispiel für eine MDX-Abfrage zu finden, die mehr als zwei Dimensionen hat. Jede einzelne Webseite, die über MDX spricht bietet eine einfache zweidimensionale Beispiele auf diesen Link:

select 
{[Measures].[Sales Amount]} on columns, 
Customer.fullname.members on rows 
from [Adventure Works DW2012] 

Ich suche Beispiele, die die folgenden Aliase verwenden: SEITEN (? Dritte Dimension), Abschnitt (? Vierte Dimension) und Kapitel (fünfte Abmessungen?). Ich habe dies versucht, aber ich glaube nicht, es ist richtig:

select 
{[Measures].[Sales Amount]} on columns, 
Customer.fullname.members on rows, 
customer.Location.[Customer Geography] as pages 
from [Adventure Works DW2012] 

Ich versuche, diese Ausgabe zu erhalten eine MDX-Abfrage verwenden (dies ist von Adventure DW2012):

enter image description here

Antwort

3

Das ist nicht eine 3-dimensionale Ergebnismenge in deinem Screenshot, es sei denn, etwas ist davon abgeschnitten.

So etwas wie

SELECT [Geography].[Country].Members ON 0, 
[Customer].[CustomerName].Members ON 1 
FROM [whatever the cube is called] 
WHERE [Measures].[Sales Amount] 

(Dimension/Hierarchie/Ebenennamen sind möglicherweise nicht genau rechts) würde eine resultset wie das in Ihrer Nachricht geben.

Die Bemaßungen und Dimensionen von beyond 2. Dimension werden in keinem mir bekannten Client-Tool verwendet. (Andere wissen vielleicht anders). Sie scheinen in MDX vorhanden zu sein, so dass MDX 2-dimensionale Resultsets an Clients übergeben kann, die mit ihnen umgehen können (z. B. eine MDX-Unterabfrage, die ihre Ergebnisse an die Hauptabfrage übergibt).

Ein häufig verwendeter Trick in MDX ist es, die Mitglieder von zwei Dimensionen auf eine Achse, die durch Quer Beitritt zu erhalten:..

SELECT {[Datum] [Kalendertag] [Kalenderjahr] .Members * [Geography] [Land] .Members} ON 0, [etwas anderes] ON 1 FROM [Cube]

+1

OK danke. Was ist der Sinn multidimensionaler Modellierung, wenn Client-Tools nicht damit umgehen können? – w0051977

+0

Gute Frage. Der Sinn der MD-Modellierung besteht darin, dass die Arbeit mit den Daten sehr flexibel ist, entweder innerhalb des Abfragecodes (wie im folgenden wheretheq Unterabfrage-Beispiel) oder auf der Client-Schnittstelle selbst. Sie können tatsächlich keine 3-dimensionale Ergebnismenge erhalten, aber Sie können beliebige Dimensionen auf Achsen plus eine beliebige Anzahl als Slicer kombinieren. – SebTHU

+0

Ich glaube, dass Excel in der Lage ist, eine dreidimensionale + Ergebnismenge zu zeigen (siehe Screenshot in meinem ursprünglichen Beitrag). Ist das korrekt? – w0051977

3

Wie wäre es die folgenden -. es mehr als zwei Dimensionen nicht auf einem Flachbildschirm zurückschicken, aber es nutzt ziemlich viele Dimensionen ausdrücklich:

SELECT 
    [Measures].[Sales Amount] ON O, 
    [Customer].[fullname].MEMBERS ON 1 
FROM 
( 
    SELECT 
    [Date].[Calendar Month].[Calendar Month].&[February-2012] ON 0, 
    [Geography].[Country].[Country].&[Canada] ON 1, 
    [Product].[Product].&[Red Bike] ON 2, 
    [Customer].[Customer].&[foo bar] ON 3 
    FROM [Adventure Works DW2012] 
) 

Ich habe die Dimension | Hierarchie | Mitgliedskombinationen, da ich keinen Zugriff auf den Cube habe.

Auch wenn wir implizite Dimensionen dann nehmen Sie die folgenden Punkte beachten:

SELECT 
    [Customer].[Location].[Customer Geography] ON 0, 
    [Customer].[fullname].[fullname].&[Aaron Flores] ON 1 
FROM [Adventure Works DW2012] 
WHERE 
    (
    [Measures].[Sales Amount] 
); 

Auf der Slicer habe ich eine Zahnspange (..) verwendet, die eine tuple zeigen, aber das ist eigentlich eine Abkürzung für die folgenden:

SELECT 
    [Customer].[Location].[Customer Geography] ON 0, 
    [Customer].[fullname].[fullname].&[Aaron Flores] ON 1 
FROM [Adventure Works DW2012] 
WHERE 
    (
    [Measures].[Sales Amount] 
    ,[Date].[Calendar Month].[Calendar Month].[All], 
    ,[Geography].[Country].[Country].[All], 
    ,[Product].[Product].[All] 
    ,... 
    ,... 
    .... 
); 

Das Element All aus jeder Dimension im Cube kann in diesem Slicer enthalten sein, ohne das Ergebnis zu beeinflussen.

So ist die ganze Natur von MDX multi-dimensional - ja, Sie erhalten nicht mehr als eine zweidimensionale Tabelle auf Ihren Bildschirm zurückgegeben, aber die Art und Weise, wie Sie zu diesem Zellensatz gelangen, könnte viele Dimensionen beinhalten.

+0

Werden multidimensionale Strukturen in Client-Anwendungen verwendet oder dienen sie nur zur Optimierung des Speichers? Ich glaube Excels Pivot Table erlaubt es einem Benutzer, eine multidimensionale Datenstruktur zu sehen, aber ich könnte falsch liegen - ich bin neu in diesem Bereich. Habe ich recht? +1 für die Beispiele. Ich werde sie morgen versuchen. – w0051977

+0

Excel-Pivot-Tabellen wurden zur selben Zeit wie olap erstellt - ich glaube, dass beide die gleiche Technologie verwenden, mit anderen Worten, wenn ein Pivot-Tisch nur ein Bog-Standard-Pivot-Tisch ist, verwendet er mehrdimensionale Technologie im Hintergrund. Das Verbinden von Excel-Pivots mit vollständigen mehrdimensionalen Cubes ist eine Standardmethode für den Zugriff auf Cubes - dies ist seit mehr als 10 Jahren in Excel verfügbar. – whytheq

+0

Danke. Ist der Screenshot in meinem ursprünglichen Post eine dreidimensionale Anzeige? – w0051977