MDX-lekérdezés – Az alapszintű lekérdezés

A következőkre vonatkozik: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

Az alapszintű többdimenziós kifejezések (MDX) lekérdezése a SELECT utasítás, amely az MDX leggyakrabban használt lekérdezése. Ha tisztában van azzal, hogy az MDX SELECT utasításnak hogyan kell megadnia egy eredményhalmazt, mi a SELECT utasítás szintaxisa, és hogyan hozhat létre egyszerű lekérdezést a SELECT utasítással, alapos ismeretekkel rendelkezik arról, hogyan használható az MDX a többdimenziós adatok lekérdezésére.

Eredményhalmaz megadása

Az MDX-ben a SELECT utasítás egy olyan eredményhalmazt határoz meg, amely egy kockából visszaadott többdimenziós adatok részhalmazát tartalmazza. Eredményhalmaz megadásához az MDX-lekérdezésnek a következő információkat kell tartalmaznia:

  • Azon tengelyek száma, amelyeket az eredményhalmaznak tartalmaznia kell. Egy MDX-lekérdezésben legfeljebb 128 tengelyt adhat meg.

  • Az MDX-lekérdezés egyes tengelyeibe belefoglalandó tagok vagy tuplesek halmaza.

  • Az MDX-lekérdezés környezetét meghatározó kocka neve.

  • A szeletelőtengelybe belefoglalandó tagok vagy tuplesek halmaza. A szeletelővel és a lekérdezési tengelyekkel kapcsolatos további információkért lásd : A lekérdezés korlátozása lekérdezéssel és szeletelőtengelyekkel (MDX).

A lekérdezési tengelyek, a lekérdezendő kocka és a szeletelőtengely azonosításához az MDX SELECT utasítás a következő záradékokat használja:

  • SELECT záradék, amely meghatározza egy MDX SELECT utasítás lekérdezési tengelyeit. A LEKÉRDEZÉSI TENGELYEK SELECT záradékban való felépítéséről további információt a lekérdezési tengely (MDX) tartalmának megadása című témakörben talál.

  • A FROM utasítás meghatározza, hogy melyik kockát kell lekérdezni. A FROM záradékról további információt a SELECT utasításban (MDX) talál.

  • Választható WHERE záradék, amely meghatározza, hogy a szeletelőtengelyen mely tagok vagy tuplesek használhatók a visszaadott adatok korlátozásához. A WHERE záradékban lévő szeletelőtengelyek felépítéséről további információt a Szeletelőtengely (MDX) tartalmának megadása című témakörben talál.

Megjegyzés:

A SELECT utasítás különböző záradékairól további információt a SELECT utasítás (MDX) című témakörben talál.

SELECT utasítás szintaxisa

Az alábbi szintaxis egy alapszintű SELECT utasítást mutat be, amely tartalmazza a SELECT, a FROM és a WHERE záradékok használatát:

[ 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> ]  

Az MDX SELECT utasítás támogatja az opcionális szintaxist, például a WITH kulcsszót, az MDX-függvények használatát a számított tagok tengelybe vagy szeletelőtengelybe való felvételéhez, valamint az adott cellatulajdonságok értékeinek lekérdezés részeként való visszaadásának lehetőségét. Az MDX SELECT utasításról további információt a SELECT utasításban (MDX) talál.

Az MDX SELECT utasítás szintaxisának összehasonlítása az SQL-hez

Az MDX SELECT utasítás szintaxisformátuma hasonló az SQL-szintaxishoz. Azonban számos alapvető különbség van:

  • Az MDX szintaxis megkülönbözteti a készleteket, ha kapcsos zárójelek ({ és } karakterek) közé helyezik őket. A tagokról, a többszörösökről és a halmazszintaxisról további információt a Tagok, Többszörösök és Készletek (MDX) című témakörben talál.

  • Az MDX-lekérdezések 0, 1, 2 vagy legfeljebb 128 lekérdezési tengelyt tartalmazhatnak a SELECT utasításban. Minden tengely pontosan ugyanúgy viselkedik, mint az SQL, ahol jelentős különbségek vannak a sorok és a lekérdezés oszlopai között.

  • Az SQL-lekérdezésekhez hasonlóan a FROM záradék az MDX-lekérdezés adatainak forrását is elnevezi. Az MDX FROM záradék azonban egyetlen kockára korlátozódik. Más kockákból származó információk a LookupCube függvény használatával lekérhetők érték szerint.

  • A WHERE záradék egy MDX-lekérdezés szeletelőtengelyét írja le. Úgy működik, mint egy láthatatlan, extra tengely a lekérdezésben, szeleteli a cellákban megjelenő értékeket az eredményhalmazban; az SQL WHERE záradékkal ellentétben ez nem befolyásolja közvetlenül a lekérdezés sortengelyén megjelenő elemeket. Az SQL WHERE záradék funkciója más MDX-függvényeken, például a FILTER függvényen keresztül érhető el.

SELECT utasítás példa

Az alábbi példa egy alapszintű MDX-lekérdezést mutat be, amely a SELECT utasítást használja. Ez a lekérdezés egy eredményhalmazt ad vissza, amely tartalmazza a Délnyugati értékesítési területek 2002- és 2003-ra vonatkozó értékesítéseit és adóösszegeit.

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] )  

Ebben a példában a lekérdezés a következő eredményhalmaz-információkat határozza meg:

  • A SELECT záradék a lekérdezési tengelyeket a Mértékek dimenzió Értékesítési összeg és Adóösszeg tagjai, valamint a Dátum dimenzió 2002- és 2003-as tagjaiként állítja be.

  • A FROM záradék azt jelzi, hogy az adatforrás az Adventure Works-kocka.

  • A WHERE záradék a szeletelőtengelyt a Sales Territory dimenzió délnyugati tagjaként határozza meg.

Figyelje meg, hogy a lekérdezési példa a COLUMNS és a ROWS tengely aliasait is használja. A tengelyek sorrendi pozícióit is használhatták volna. Az alábbi példa bemutatja, hogyan írható meg az MDX-lekérdezés úgy, hogy az egyes tengelyek sorszám szerinti pozícióját használja.

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] )  

Részletesebb példákért tekintse meg a lekérdezési tengely (MDX) tartalmának megadása és a szeletelőtengely (MDX) tartalmának megadása című témakört.

Lásd még:

Alapfogalmak az MDX-ben (Analysis Services)
SELECT utasítás (MDX)