Dotaz MDX – základní dotaz

platí pro: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

Základní dotaz MDX (Multidimensional Expressions) je příkaz SELECT– nejčastěji používaný dotaz v JAZYCE MDX. Když pochopíte, jak příkaz MDX SELECT musí určit sadu výsledků, jaká je syntaxe příkazu SELECT a jak vytvořit jednoduchý dotaz pomocí příkazu SELECT, budete mít solidní znalosti o tom, jak pomocí jazyka MDX dotazovat multidimenzionální data.

Zadání sady výsledků

Příkaz SELECT v MDX určuje sadu výsledků obsahující podmnožinu multidimenzionálních dat vrácených z datové krychle. Pokud chcete zadat sadu výsledků, musí dotaz MDX obsahovat následující informace:

  • Počet os, které chcete, aby sada výsledků obsahovala. V dotazu MDX můžete zadat až 128 os.

  • Sada členů nebo n-tic, které se mají zahrnout pro každou osu dotazu MDX.

  • Název datové krychle, která nastaví kontext dotazu MDX.

  • Sada členů nebo datových kolekcí, které se mají zahrnout na osu řezu. Další informace o průřezu a osách dotazů najdete v tématu Omezení dotazu pomocí os dotazů a průřezů (MDX).

Pro identifikaci os dotazu, datové krychle, která bude dotazována, a průřezové osy používá příkaz MDX SELECT následující klauzule:

  • Klauzule SELECT, která určuje osy dotazu příkazu MDX SELECT. Další informace o konstrukci os dotazů v klauzuli SELECT naleznete v tématu Určení obsahu osy dotazu (MDX).

  • Klauzule FROM, která určuje, která datová krychle bude dotazována. Další informace o klauzuli FROM naleznete v tématu SELECT – příkaz (MDX).

  • Volitelná klauzule WHERE, která určuje, které členy nebo řazené kolekce členů se mají použít na ose průřezu k omezení vrácených dat. Další informace o konstrukci osy průřezu v klauzuli WHERE naleznete v tématu Určení obsahu osy průřezu (MDX).

Poznámka:

Podrobnější informace o různých klauzulích příkazu SELECT naleznete v tématu SELECT – příkaz (MDX).

Syntaxe příkazu SELECT

Následující syntaxe ukazuje základní příkaz SELECT, který zahrnuje použití klauzulí SELECT, FROM a WHERE:

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

Příkaz MDX SELECT podporuje volitelnou syntaxi, jako je klíčové slovo WITH, použití funkcí MDX k vytvoření počítaných členů pro zahrnutí do osy nebo osy průřezu a možnost vracet hodnoty konkrétních vlastností buňky v rámci dotazu. Další informace o příkazu MDX SELECT naleznete v tématu PŘÍKAZ SELECT (MDX).

Porovnání syntaxe příkazu MDX SELECT s JAZYKem SQL

Formát syntaxe příkazu MDX SELECT je podobný syntaxi JAZYKa SQL. Existuje však několik základních rozdílů:

  • Syntaxe MDX rozlišuje sady obklopující členy nebo sady složenými závorkami ({ a }). Další informace o syntaxi členů, tuplů a sad najdete v tématu Práce se členy, tuplů a sadami (MDX).

  • Dotazy MDX můžou mít v příkazu SELECT osy dotazu 0, 1, 2 nebo až 128. Každá osa se chová úplně stejně, na rozdíl od SQL, kde existují významné rozdíly mezi chováním řádků a sloupců dotazu.

  • Stejně jako u dotazu SQL pojmenuje klauzule FROM zdroj dat pro dotaz MDX. Klauzule MDX FROM je však omezena na jednu kostku. Informace z jiných datových krychlí lze načíst podle hodnoty pomocí funkce LookupCube.

  • Klauzule WHERE popisuje osu průřezu v dotazu MDX. Funguje jako neviditelná, další osa v dotazu, která rozděluje hodnoty zobrazené v buňkách v sadě výsledků; na rozdíl od podmínek SQL WHERE nemá přímý vliv na to, co se zobrazuje na ose řádků dotazu. Funkce klauzule SQL WHERE je k dispozici prostřednictvím jiných funkcí MDX, jako je funkce FILTER.

Příklad příkazu SELECT

Následující příklad ukazuje základní dotaz MDX, který používá příkaz SELECT. Tento dotaz vrátí sadu výsledků obsahující částky prodeje a daně 2002 a 2003 pro oblasti prodeje na jihozápadě.

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

V tomto příkladu dotaz definuje následující informace sady výsledků:

  • Klauzule SELECT nastaví osy dotazu jako členy Sales Amount (Částka prodeje) a Tax Amount (Částka daně) dimenze Míry (Míry) a členy 2002 a 2003 (Datum) dimenze Date (Datum).

  • Klauzule FROM označuje, že zdrojem dat je datová krychle Adventure Works.

  • Klauzule WHERE definuje osu průřezu jako jihozápadní člen dimenze Sales Territory.

Všimněte si, že aliasy os SLOUPCŮ a ŘÁDKŮ se používají také v příkladu dotazu. Mohly být také použity ordinální pozice pro tyto osy. Následující příklad ukazuje, jak se dotaz MDX mohl zapsat tak, aby používal řadovou pozici každé osy:

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

Podrobnější příklady najdete v tématu Určení obsahu osy dotazu (MDX) a určení obsahu osy průřezu (MDX).

Viz také

Klíčové koncepty v MDX (Analysis Services)
Příkaz SELECT (MDX)