Jaa


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.

DAX-arviointilauseke

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.

DAX Laske tilaus lausekkeen mukaan

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.

DAX-arviointilauseke, lajittelu myyntitilausnumeron mukaan

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.

DAX Laske mittarin avulla, määritelmä

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.

DAX-lausekkeet
SUMMARIZECOLUMNS
TREATAS
SUODATIN