DAX-kyselyt
Raportoivat asiakkaat, kuten Power BI ja Excel, suorittavat DAX-kyselyitä aina, kun kenttä sijoitetaan raporttiin tai kun suodatinta käytetään. Käyttämällä SQL Server Management Studiota (SSMS), Power BI aruandekoostur ja avoimen lähdekoodin työkaluja, kuten DAX Studiota, voit luoda ja suorittaa omia DAX-kyselyitä. DAX-kyselyt palauttavat tulokset taulukkona suoraan työkalussa, joten voit luoda ja testata nopeasti DAX-kaavojen suorituskykyä.
Ennen kyselyiden opettelua on tärkeää, että ymmärrät DAX:n perusteet. Tutustu DAXin yleiskatsaukseen, jos et ole vielä lukenut sitä.
Avainsanat
DAX-kyselyillä on yksinkertainen syntaksi, joka koostuu vain yhdestä pakollisesta avainsanasta, EVALUATE-funktiosta ja useista valinnaisista avainsanoista: ORDER BY, START AT, DEFINE, MEASURE, VAR, TABLE ja COLUMN. Jokainen avainsana määrittää lausekkeen, jota käytetään kyselyn keston ajan.
EVALUATE (Pakollinen)
Perustasolla DAX-kysely on EVALUATE-lauseke , joka sisältää taulukkolausekkeen. Vähintään yksi EVALUATE-lauseke vaaditaan, mutta kysely voi sisältää minkä tahansa määrän EVALUATE-lausekkeita.
EVALUATE Syntax
EVALUATE <table>
EVALUATE-parametrit
Termi | Määritelmä |
---|---|
table | Taulukkolauseke. |
EVALUATE-esimerkki
EVALUATE
'Internet Sales'
Palauttaa kaikki Internet Sales -taulukon rivit ja sarakkeet taulukkona.
ORDER BY (valinnainen)
Valinnainen ORDER BY - avainsana määrittää yhden tai useamman lausekkeen kyselytulosten lajittelemiseen. Mikä tahansa lauseke, joka voidaan laskea jokaisella tuloksen rivillä, on kelvollinen.
ORDER BY Syntax
EVALUATE <table>
[ORDER BY {<expression> [{ASC | DESC}]}[, …]]
ORDER BY -parametrit
Termi | Määritelmä |
---|---|
lauseke | Mikä tahansa DAX-lauseke, joka palauttaa yksittäisen skalaariarvon. |
ASC | (oletus) Nouseva lajittelujärjestys. |
DESC | Laskeva lajittelujärjestys. |
ESIMERKKI ORDER BY
EVALUATE
'Internet Sales'
ORDER BY
'Internet Sales'[Order Date]
Palauttaa kaikki Internet Sales -taulukon rivit ja sarakkeet nousevassa järjestyksessä tilauspäivämäärän mukaan taulukkona.
ALOITA OSOITTEESTA (valinnainen)
Valinnaista START AT -avainsanaa käytetään ORDER BY -lauseen sisällä. Se määrittää arvon, jolla kyselyn tulokset alkavat.
ALOITA SYNtaksiSTA
EVALUATE <table>
[ORDER BY {<expression> [{ASC | DESC}]}[, …]
[START AT {<value>|<parameter>} [, …]]]
START AT -parametrit
Termi | Määritelmä |
---|---|
arvo | Vakioarvo. Ei voi olla lauseke. |
parametri | XMLA-lausekkeessa olevan parametrin nimi, jonka etuliitteenä on @ -merkki. |
ALOITA HUOMAUTUKSISTA
START AT -argumenteilla on yksi yhteen -vastaavuus ORDER BY -lauseen sarakkeiden kanssa. START AT -lauseessa voi olla yhtä monta argumenttia kuin ORDER BY -lauseessa on, mutta ei enempää. Ensimmäinen START AT -argumentti määrittää aloitusarvon sarakkeessa 1 ORDER BY -sarakkeista. Toinen START AT -argumentti määrittää aloitusarvon ORDER BY -sarakkeiden sarakkeessa 2 niiden rivien sisällä, jotka kohtaavat sarakkeen 1 ensimmäisen arvon.
ESIMERKKI START AT
EVALUATE
'Internet Sales'
ORDER BY
'Internet Sales'[Sales Order Number]
START AT "SO7000"
Palauttaa kaikki Internet-myyntitaulukon rivit ja sarakkeet nousevassa järjestyksessä Myyntitilausnumeron mukaan alkaen kohdasta SO7000.
DEFINE (Valinnainen)
Valinnainen DEFINE-avainsana esittelee vähintään yhden lasketun entiteetin määritelmän, joka on olemassa vain kyselyn ajan. Määritelmät ovat EVALUATE-lausekkeen edessä, ja ne ovat kelvollisia kaikissa kyselyn EVALUATE-lausekkeissa. Määritelmät voivat olla muuttujia, mittareita, taulukoita1 ja sarakkeita1. Määritelmät voivat viitata muihin määritelmiin, jotka näkyvät ennen nykyistä määritelmää tai sen jälkeen. Vähintään yksi määritys vaaditaan, jos DEFINE-avainsana sisältyy kyselyyn.
MÄÄRITÄ syntaksi
[DEFINE
(
(MEASURE <table name>[<measure name>] = <scalar expression>) |
(VAR <var name> = <table or scalar expression>) |
(TABLE <table name> = <table expression>) |
(COLUMN <table name>[<column name>] = <scalar expression>) |
) +
]
(EVALUATE <table expression>) +
DEFINE-parametrit
Termi | Määritelmä |
---|---|
Entiteetti | MEASURE, VAR, TABLE1 tai COLUMN1. |
nimi | Mittari-, var-, taulukko- tai sarakemäärityksen nimi. Se ei voi olla lauseke. Nimen ei tarvitse olla yksilöivä. Nimi on olemassa vain kyselyn ajan. |
lauseke | Mikä tahansa DAX-lauseke, joka palauttaa taulukon tai skalaariarvon. Lauseke voi käyttää mitä tahansa määritettyjä entiteettejä. Jos skalaarilauseke on muunnettava taulukkolausekkeeksi, rivitä lauseke taulukkokonstruktorin sisälle aaltosulkeilla {} tai palauta yksirivinen taulukko funktion ROW() avulla. |
[1] Varoitus: Kyselyn vaikutusalueen TAULUKKO- ja SARAKEmääritykset on tarkoitettu vain sisäiseen käyttöön. Vaikka voit määrittää kyselyn TAULUKKO- ja SARAKE-lausekkeita ilman syntaksivirheitä, ne saattavat aiheuttaa suorituksenaikaisia virheitä, eikä niitä suositella.
MÄÄRITÄ huomautukset
DAX-kyselyllä voi olla useita EVALUATE-lauseita, mutta siinä voi olla vain yksi DEFINE-lauseke. DEFINE-lausekkeen määritelmät voivat koskea mitä tahansa kyselyn EVALUATE-lausekkeita.
DEFINE-lausekkeessa vaaditaan vähintään yksi määritys.
Kyselyn mittarimääritykset ohittavat samannimisen mallin mittarit, mutta niitä käytetään vain kyselyssä. Ne eivät vaikuta mallin mittariin.
VAR-nimillä on yksilöllisiä rajoituksia. Lisätietoja on artikkelissa VAR – parametrit.
DEFINE Esimerkki
DEFINE
MEASURE 'Internet Sales'[Internet Total Sales] =
SUM ( 'Internet Sales'[Sales Amount] )
EVALUATE
SUMMARIZECOLUMNS (
'Date'[Calendar Year],
TREATAS (
{
2013,
2014
},
'Date'[Calendar Year]
),
"Total Sales", [Internet Total Sales],
"Combined Years Total Sales",
CALCULATE (
[Internet Total Sales],
ALLSELECTED ( 'Date'[Calendar Year] )
)
)
ORDER BY [Calendar Year]
Palauttaa lasketun vuosien 2013 ja 2014 kokonaismyynnin sekä yhdistetyn lasketun kokonaismyynnin vuosilta 2013 ja 2014 taulukkona. DEFINE-lausekkeen mittaria, Internet-kokonaismyyntiä, käytetään sekä kokonaismyynnin että yhdistettyjen vuosien kokonaismyynnin lausekkeissa.
Parametrit DAX-kyselyissä
Hyvin määritetty DAX-kyselylauseke voidaan parametrisoitua ja käyttää sitten uudelleen ja uudelleen vain parametriarvojen muutoksilla.
Execute Method (XMLA) -menetelmässä on Parameters Element (XMLA) -kokoelmaelementti, joka mahdollistaa parametrien määrittämisen ja arvon määrittämisen niille. Kokoelmassa jokainen Parameter Element (XMLA) -elementti määrittää parametrin nimen ja arvon.
Viittaa XMLA-parametreihin lisäämällä parametrin nimen etuliitteeksi @
-merkki. Missä tahansa syntaksin kohdassa, jossa sallitaan arvo, arvo voidaan korvata parametrikutsulla. Kaikki XMLA-parametrit kirjoitetaan tekstinä.
Tärkeä
Parametriosiossa määritetyt parametrit, joita ei käytetä STATEMENT-elementissä<>, synnyttävät XMLA:ssa virhevastauksen. Parametrit, joita käytetään mutta joita ei ole määritetty Parameters-elementissä<>, synnyttävät XMLA:ssa virhevastauksen.