DAX-lekérdezések

Az olyan jelentéskészítő ügyfelek, mint a Power BI és az Excel, DAX-lekérdezéseket hajtanak végre, amikor egy mező egy jelentésre kerül, vagy amikor szűrőt alkalmaz. Az SQL Server Management Studio (SSMS), a Power BI Jelentéskészítő és a nyílt forráskódú eszközök, például a DAX Studio használatával létrehozhatja és futtathatja saját DAX-lekérdezéseit. A DAX-lekérdezések közvetlenül az eszköz táblázataként adnak vissza eredményeket, így gyorsan létrehozhatja és tesztelheti a DAX-képletek teljesítményét.

A lekérdezések megismerése előtt fontos, hogy tisztában legyen a DAX alapjaival. Ha még nem tette meg, mindenképpen ellenőrizze a DAX áttekintését.

Kulcsszavak

A DAX-lekérdezések egy egyszerű szintaxissal rendelkeznek, amely csak egy kötelező kulcsszóból, a KIÉRTÉKELÉSből és számos választható kulcsszóból áll: ORDER BY, START AT, DEFINE, MEASURE, VAR, TABLE és COLUMN. Minden kulcsszó meghatároz egy utasítást, amelyet a lekérdezés időtartamára használnak.

KIÉRTÉKELÉS (kötelező)

A legalapvetőbb szinten a DAX-lekérdezés egy táblakifejezést tartalmazó EVALUATE utasítás. Legalább egy EVALUATE utasításra van szükség, azonban a lekérdezések tetszőleges számú EVALUATE utasítást tartalmazhatnak.

KIÉRTÉKELÉS szintaxisa

EVALUATE <table>  

KIÉRTÉKELŐ paraméterek

Időszak Definíció
table Táblakifejezés.

PÉLDA KIÉRTÉKELÉSE

EVALUATE
    'Internet Sales'

Az Internet Sales tábla összes sorát és oszlopát táblaként adja vissza.

DAX Evaluate utasítás

ORDER BY (nem kötelező)

Az opcionális ORDER BY kulcsszó egy vagy több kifejezést határoz meg a lekérdezési eredmények rendezéséhez. Az eredmény minden sorához kiértékelhető kifejezés érvényes.

ORDER BY Szintaxis

EVALUATE <table>  
[ORDER BY {<expression> [{ASC | DESC}]}[, …]]  

ORDER BY Parameters

Időszak Definíció
Kifejezés Bármely DAX-kifejezés, amely egyetlen skaláris értéket ad vissza.
ASC (alapértelmezett) Növekvő rendezési sorrend.
DESC Csökkenő rendezési sorrend.

ORDER BY Example

EVALUATE
    'Internet Sales'
    
ORDER BY
    'Internet Sales'[Order Date]

Az Internet Sales tábla összes sorát és oszlopát adja vissza növekvő sorrendben rendelési dátum szerint táblázatként.

DAX– Sorrend kiértékelése utasítás szerint

START AT (nem kötelező)

Az opcionális START AT kulcsszót egy ORDER BY záradékban használja a rendszer. Meghatározza azt az értéket, amelyben a lekérdezési eredmények kezdődnek.

START AT Szintaxis

EVALUATE <table>  
[ORDER BY {<expression> [{ASC | DESC}]}[, …]  
[START AT {<value>|<parameter>} [, …]]]

START AT paraméterek

Időszak Definíció
Érték Állandó érték. Nem lehet kifejezés.
paraméter Egy karakterrel előtagú @ XMLA-utasításban szereplő paraméter neve.

START AT Megjegyzések

A START AT argumentumok egy-az-egyhez egyezést tartalmaznak az ORDER BY záradék oszlopaival. A START AT záradékban annyi argumentum lehet, mint az ORDER BY záradékban, de nem több. A START AT első argumentuma az ORDER BY oszlopok 1. oszlopában határozza meg a kezdőértéket. A START AT második argumentuma az ORDER BY oszlopok 2. oszlopában határozza meg a kezdőértéket az 1. oszlop első értékének megfelelő sorokban.

START AT példa

EVALUATE
    'Internet Sales'
    
ORDER BY
    'Internet Sales'[Sales Order Number]
START AT "SO7000"

Az Internet Sales tábla összes sorát és oszlopát adja vissza növekvő sorrendben az Értékesítési rendelés száma szerint, SO7000-től kezdődően.

DAX Rendelés kiértékelése értékesítési rendelésszám utasítás alapján

DEFINE (nem kötelező)

Az opcionális DEFINE kulcsszó egy vagy több számított entitásdefiníciót vezet be, amelyek csak a lekérdezés időtartamára léteznek. A definíciók megelőzik a EVALUATE utasítást, és érvényesek a lekérdezés összes EVALUATE utasítására. A definíciók lehetnek változók, mértékek, 1. táblázatés 1. oszlop. A definíciók hivatkozhatnak az aktuális definíció előtt vagy után megjelenő egyéb definíciókra. Legalább egy definícióra szükség van, ha a DEFINE kulcsszó szerepel egy lekérdezésben.

DEFINÍCIÓ szintaxisa

[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-paraméterek

Időszak Definíció
Entitás MÉRTÉK, VAR, 1. TÁBLÁZATVAGY OSZLOP1.
név Mérték, var, tábla vagy oszlopdefiníció neve. Nem lehet kifejezés. A névnek nem kell egyedinek lennie. A név csak a lekérdezés időtartamára létezik.
Kifejezés Bármely DAX-kifejezés, amely táblát vagy skaláris értéket ad vissza. A kifejezés a definiált entitások bármelyikét használhatja. Ha skaláris kifejezést kell táblázatkifejezéssé alakítani, akkor a kifejezést kapcsos zárójelekkel {}burkolja egy táblakonstruktorba, vagy használja a ROW() függvényt egyetlen sortábla visszaadásához.

[1]Figyelem: A lekérdezés hatókörébe tartozó TABLE és COLUMN definíciók csak belső használatra szolgálnak. Bár szintaxishiba nélkül is definiálhat TABLE és COLUMN kifejezéseket egy lekérdezéshez, futásidejű hibákat okozhat, ezért nem ajánlott.

DEFINE megjegyzések

  • A DAX-lekérdezések több EVALUATE utasítással is rendelkezhetnek, de csak egy DEFINE utasítással rendelkezhetnek. A DEFINE utasítás definíciói a lekérdezés bármely KIÉRTÉKELő utasítására alkalmazhatók.

  • A DEFINE utasításban legalább egy definíció szükséges.

  • A lekérdezés felülbírálási modell azonos nevű mértékeinek mértékdefiníciói, de csak a lekérdezésen belül használatosak. Ezek nem befolyásolják a modellmértékeket.

  • A VAR-nevek egyedi korlátozásokkal rendelkeznek. További információ: VAR – Paraméterek.

PÉLDA DEFINIÁLÁSA

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]

A 2013-as és 2014-ben számított teljes értékesítést adja eredményül, a 2013-as és 2014-as évek összesített összesített értékesítéseit pedig táblaként. A DEFINE utasításban szereplő mérték, az Internetes összes értékesítés, a Total Sales és a Combined Years Total Sales kifejezésben egyaránt használatos.

DAX-kiértékelés mértéktöredezettséggel

Paraméterek DAX-lekérdezésekben

Egy jól definiált DAX-lekérdezési utasítás paraméterezhető, majd újra és újra használható a paraméterértékek csak módosításával.

Az Execute Method (XMLA) metódus rendelkezik egy Paraméterelem (XMLA) gyűjteményelemmel, amely lehetővé teszi a paraméterek meghatározását és egy érték hozzárendelését. A gyűjteményen belül minden paraméterelem (XMLA) meghatározza a paraméter nevét és egy értékét.

Hivatkozzon XMLA-paraméterekre a paraméter nevének egy karakterrel való előtagolásával @ . A szintaxis azon helye, ahol egy érték engedélyezett, az érték lecserélhető paraméterhívásra. Minden XMLA-paraméter szövegként van begépelve.

Fontos

A paraméterek szakaszban definiált és az UTASÍTÁS> elemben nem használt paraméterek hibaválaszt hoznak létre az <XMLA-ban. A Paraméterek elemben <használt és nem definiált paraméterek> hibaválaszt hoznak létre az XMLA-ban.

DAX-utasítások
SUMMARIZECOLUMNS
TREATAS
SZŰRŐ