SQLShack

att hämta information från en Tabelldatabas är enkelt – fråga bara med några grundläggande DAX-funktioner! I den här artikeln kommer vi att lära oss att fråga en Tabellmodell med några av MDX-uttrycken, undersöka resultaten från Dax-frågor och analysera data från tabellerna.

krav

förutsättningarna för att fråga med MDX är SQL Server Management Studio 2014 eller senare med en installerad SSAS-Tabellinstans och distribuerad SSAS-Tabellmodelldatabas.

miljöförberedelse

att fråga en SSAS-Tabellmodelldatabas med MDX sker i SQL Server Management Studio, i MDX-frågefönstret.

flerdimensionella uttryck (MDX) översikt

MDX är uttrycksspråk som kan fråga och analysera flerdimensionella data i OLAP-kuber (som SSAS flerdimensionella modelldatabaser, t.ex.). Även om den främst är utformad för att fråga en flerdimensionell modelldatabas, kan den också fråga en Tabellmodelldatabas. Å andra sidan kan DAX-funktioner inte fråga flerdimensionella modelldatabaser, eftersom DAX-frågeuttryck är specifika för Tabellmodelldatabaser.

strukturellt innehåller MDX XMLA specificerad syntax. Eftersom det liknar T-SQL finns vissa DDL-uttalanden som kan hantera och organisera flerdimensionella datakonstruktioner. Detta gäller endast SSAS multidimensionella modelldatabaser.

när det gäller komplexitet är huvudtyperna av MDX-uttryck: konstant (numerisk, sträng etc.), skalär och objektorienterad. Dessa typer kombineras i komplexa uttryck som motsvarar uttalanden och MDX-funktioner.

när man talar om att fråga en SSAS-Tabellmodelldatabas kombineras uttryck i den här artikeln skalär/konstant typ, som enkla Kubuttryck. Dessa uttryck hämtar bara data från en Tabellkub, visar resultaten i kolumner, beställer data och förbereder dem för vidare analys.

fråga SSAS Tabellmodell databas med MDX

i början av de flesta MDX frågor är SELECT uttalande, följt med en från uttalande. Det liknar mycket T-SQL (i motsats till Evaluate-uttalandet i DAX):

1
2
3

välj från

den här frågan är den enklaste, och den returnerar värde 1 (”sant”). Det betyder att Aw-Tabelldatabasen är närvarande.

välja tabellen Produktnamn från Produktabell, välj uttalande i T-SQL ser ut så här:

1
2
3

välj dbo.Produktnamn från produkt

motsvarande uttalande skrivet i MDX, skulle vara logiskt:

1
2
3
4
5

välj
{..}
från

Lägg märke till hängslen {}, som är operatörerna som parentesen i DAX. De bifogar uttalandena och gör det möjligt att lägga till komplexitet i frågeskrivning. MDX-frågor är skiftlägeskänsliga som DAX-frågor.

den här frågan skulle hämta produktnamnskolumn och Produktabell från Aw-Tabellkuben, men istället för att visa den enda kolumnen väcker det ett exekveringsfel:

den främsta orsaken är i typ av databasmodell och syntax: Flerdimensionella och Tabellmodelldatabaser har båda dimensioner, som avgörande begrepp, men MDX i sin syntax känner igen kolumner, rader och andra element (specifika för flerdimensionella databaser) som axlar i fråga – föreställ dig dem som X -, y -, z-axlarna på en 3D-kubmodell.

när du frågar en SSAS-Tabellmodelldatabas måste MDX känna igen minst två axlar i dem: kolumner och rader, för att visa data korrekt:

1
2
3
4
5
6

välj
{..} på kolumner,
{..} på rader
från

nu ställer vi in axlarna i frågan, och resultatet visar:

som framgår visar alla värden i kolumnen Produktnamn på kolumner i resultat och rader visar motsvarande år (i kolumnen räkenskapsår) och antal objekt (i detta fall cykeldelar). Därför, i stället för tre axlar i MDX-fråga, när man frågar en SSAS-Tabellmodelldatabas är det bara två axlar som räcker för att hämta data.

detta exempel frågar samma tabell inom båda axlarna:

1
2
3
4
5
6

välj
{..} på kolumner,
{..} på rader
från

resultatet av frågan visar:

värdet ” 1 ”betyder” sant ”i det här fallet, och värdet” (null) ” betyder att det inte finns några relaterade data inom standardkostnadskolumnen.

  1. Visa särskilt värde (objekt) från angiven kolumn och icke tom funktion

    med MDX är det möjligt att se det enskilda värdet från kolumnen i Tabellmodelldatabasen:

    1
    2
    3
    4
    5

    välj
    {{..}.Punkt (53)} på 0
    från

    i det här exemplet visar resultatet det 53: e objektet (slumpmässigt valt) från kolumnen Modellnamn. Lägg märke till den definierade axeln ”på 0″ – istället för att definiera” kolumner ”(vi kommer att se i ytterligare exempel) eller” rader”, placeras det enskilda värdet i början av tabellvyn för frågeresultatet.

    med inkludering av icke-tom funktion, enstaka beräknade värdet från den särskilda åtgärden (Internet Total försäljning) visar:

    1
    2
    3
    4
    5
    6

    välj
    ej Tom
    {.} på kolumner
    från

  2. Tuple funktion

    Tuple är specificerad uppsättning data, en kombination av två eller flera dimensionsmedlemmar (i detta fall två värden från Årskolumn).

    1
    2
    3
    4
    5

    välj {.. : ..} på rader,
    {.} på kolumner
    från

    Lägg märke till de angivna värdena från kolumnen år som anger årsintervallet och motsvarande värden från Internet – Totalmarginalen i frågeresultatet.

  3. barn och MEDLEMSUTTRYCK

    detta uttryck visar den uppsättning data som är relaterad till angivna kolumner eller mått. Vanligtvis presenteras dessa värden som barn eller medlemmar, och det är relaterat till hierarki. De ordnas hierarkiskt i frågeresultatet.

    1
    2
    3
    4
    5

    välj . PÅ KOLUMNER,
    ..Barn på rader
    från

    i detta fall är Internet Total Frakt åtgärd baserad på beräkning med Godskolonnen, och därmed kan de kombinera.

    Lägg märke till att hängslen inte finns i frågan, men frågan är fortfarande giltig utan dem.

    för att bara visa värdena från en önskad kolumn med BARNUTTRYCKET, i överensstämmelse med en icke-relaterad kolumn, använd den här frågan:

    1
    2
    3
    4
    5
    6

    välj
    {..} på 0,
    {..barn} på 1
    från

    i detta uttryck står på 0 för på Kolumner och på 1 står för på rader axel.

    här är ytterligare ett exempel med MEDLEMSUTTRYCKET

    1
    2
    3
    4
    5

    Välj . på kolumner,
    ..medlemmar på rader
    från

  4. WHERE-klausul

    tillägg av where-klausulen är det enda sättet att filtrera specifika data från en tabell, och det liknar WHERE-klausulen i T-SQL:

    1
    2
    3
    4
    5
    6
    7

    välj
    {..} på kolumner,
    {..} på rader
    från
    där {..}

    värdet från kolumnen Landsregionnamn, ”Frankrike” är relaterat till kolumnstaden i Geografitabellen, och frågan som ingår i resultatet endast städer från Frankrike.

    WHERE-satsen är faktiskt skivaxeln, vilket ger en extra dimension både i flerdimensionella och Tabellmodelldatabaser.

  5. CASE expression

    detta uttryck är en jämförelse baserad på den logiska ordningen av element, som returnerar ett frågeresultat.

    i det här exemplet skapar du ett nytt mått som heter sales Amount Overview som motsvarar ett angivet värdeområde från Internet Total Sales measure:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15

    med medlem . som
    fall .
    när 69712.49 då ’bra’
    när 1045.6 då ’dåligt’
    annars ’(normal)’
    slut
    välj
    {.
    , .
    } på kolumner
    ,{..medlemmar} på rader
    från

jag hoppas att du gillade den här artikeln, och glad att fråga en SSAS Tabellmodell databas med MDX!

  • använda kub-och Subkubuttryck
  • MDX – språkreferens (MDX)
  • MDX-Frågegrunder (analystjänster)

  • författare
  • Senaste inlägg
Daniel Tikvicki
Daniel är en bibliotekarie som stötte på en virvel av IT-världen, där han svävar och lär sig ständigt. Han gillar böcker, bara alla former av konstnärligt uttryck (att vara musiker/poet själv), och han är underjordisk förläggare (fanzines och experimentell musik). Intressanta platser inkluderar också teologi, mytologi och pseudovetenskap.
Daniel arbetar för närvarande för ApexSQL LLC Som Mjukvaruförsäljningsingenjör där han är specialiserad på BI-miljön.

Daniel Tikvicki
Senaste inlägg av Daniel Tikvicki (se alla)
  • så här övervakar du SQL Server tempdb – databasen-juli 6, 2017
  • så här övervakar du den totala SQL Server-indexstorleken-Juni 12, 2017
  • så här ställer du in och använder krypterade SQL Server-anslutningar-Maj 8, 2017

Write a Comment

Din e-postadress kommer inte publiceras.