Share via


DAX-spørringer

Rapporteringsklienter som Power BI og Excel utfører DAX-spørringer når et felt plasseres i en rapport eller når et filter brukes. Ved å bruke SQL Server Management Studio (SSMS), Power BI Report Builder og åpen kildekode-verktøy som DAX Studio, kan du opprette og kjøre dine egne DAX-spørringer. DAX-spørringer returnerer resultater som en tabell direkte i verktøyet, slik at du raskt kan opprette og teste ytelsen til DAX-formlene.

Før du lærer om spørringer, er det viktig at du har en solid forståelse av det grunnleggende om DAX. Hvis du ikke allerede har gjort det, må du sjekke ut DAX-oversikten.

Nøkkelord

DAX-spørringer har en enkel syntaks bestående av bare ett obligatorisk nøkkelord, EVALUER og flere valgfrie nøkkelord: ORDER BY, START AT, DEFINE, MEASURE, VAR, TABLE og COLUMN. Hvert nøkkelord definerer en setning som brukes i løpet av spørringen.

EVALUER (obligatorisk)

På det mest grunnleggende nivået er en DAX-spørring en EVALUATE-setning som inneholder et tabelluttrykk. Minst én EVALUATE-setning kreves, men en spørring kan inneholde et hvilket som helst antall EVALUATE-setninger.

EVALUER syntaks

EVALUATE <table>  

EVALUATE-parametere

Term Definisjon
tabellen Et tabelluttrykk.

EVALUER eksempel

EVALUATE
    'Internet Sales'

Returnerer alle rader og kolonner fra Tabellen Internett-salg, som en tabell.

DAX Evaluate-setning

ORDER BY (Valgfritt)

Det valgfrie ORDER BY-nøkkelordet definerer ett eller flere uttrykk som brukes til å sortere spørringsresultater. Ethvert uttrykk som kan evalueres for hver rad i resultatet, er gyldig.

ORDER BY Syntaks

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

ORDER BY Parametere

Term Definisjon
Uttrykk Alle DAX-uttrykk som returnerer én enkelt skalarverdi.
ASC (standard) Stigende sorteringsrekkefølge.
DESC Synkende sorteringsrekkefølge.

ORDER BY Example

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

Returnerer alle rader og kolonner fra Internet Sales-tabellen, i stigende rekkefølge etter ordredato, som en tabell.

DAX Evaluate order by statement

START AT (valgfritt)

Det valgfrie START AT-nøkkelordet brukes i en ORDER BY-setningsdel . Den definerer verdien som spørringsresultatene starter på.

START AT-syntaks

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

START AT-parametere

Term Definisjon
verdi En konstant verdi. Kan ikke være et uttrykk.
parameter Navnet på en parameter i en XMLA-setning prefiks med et @ tegn.

START AT-kommentarer

START AT-argumenter har en en-til-en-korrespondanse med kolonnene i ORDER BY-setningsdelen. Det kan være så mange argumenter i START AT-setningsdelen som det er i ORDER BY-setningsdelen, men ikke mer. Det første argumentet i START AT definerer startverdien i kolonne 1 i ORDER BY-kolonnene. Det andre argumentet i START AT definerer startverdien i kolonne 2 i ORDER BY-kolonnene i radene som oppfyller den første verdien for kolonne 1.

START AT Eksempel

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

Returnerer alle rader og kolonner fra Internet Sales-tabellen, i stigende rekkefølge etter salgsordrenummer, fra og med SO7000.

DAX Evaluate order by Sales order number statement

DEFINE (valgfritt)

Det valgfrie DEFINE-nøkkelordet introduserer én eller flere beregnede enhetsdefinisjoner som bare finnes i løpet av spørringen. Definisjoner før EVALUATE-setningen og er gyldige for alle EVALUATE-setninger i spørringen. Definisjoner kan være variabler, mål, tabell1 og kolonne1. Definisjoner kan referere til andre definisjoner som vises før eller etter gjeldende definisjon. Minst én definisjon kreves hvis DEFINE-nøkkelordet er inkludert i en spørring.

DEFINER syntaks

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

Term Definisjon
Entity MÅL, VARIANS, TABELL1 eller KOLONNE1.
name Navnet på en mål-, var-, tabell- eller kolonnedefinisjon. Det kan ikke være et uttrykk. Navnet trenger ikke å være unikt. Navnet finnes bare for varigheten av spørringen.
Uttrykk Alle DAX-uttrykk som returnerer en tabell eller skalarverdi. Uttrykket kan bruke en av de definerte enhetene. Hvis det er behov for å konvertere et skalaruttrykk til et tabelluttrykk, kan du bryte uttrykket i en tabellkonstruktør med klammeparenteser {}eller bruke ROW() funksjonen til å returnere en enkelt radtabell.

[1]Advarsel! Tabell- og KOLONNEdefinisjoner for spørringer er bare ment for intern bruk. Selv om du kan definere TABELL- og KOLONNE-uttrykk for en spørring uten syntaksfeil, kan de produsere kjøretidsfeil og anbefales ikke.

DEFINE-merknader

  • En DAX-spørring kan ha flere EVALUATE-setninger, men kan bare ha én DEFINE-setning. Definisjoner i DEFINE-setningen kan gjelde for alle EVALUATE-setninger i spørringen.

  • Minst én definisjon kreves i en DEFINE-setning.

  • Måldefinisjoner for en spørring overstyrer modellmål med samme navn, men brukes bare i spørringen. De vil ikke påvirke modellmålet.

  • VARIANS-navn har unike begrensninger. Hvis du vil ha mer informasjon, kan du se VARIANS - Parametere.

DEFINER eksempel

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]

Returnerer det beregnede totale salget for år 2013 og 2014, og kombinert beregnet totalt salg for år 2013 og 2014, som en tabell. Målet i DEFINE-setningen, Totalt salg på Internett, brukes i uttrykkene Totalt salg totalt salg og Totalt salg for samlede år.

DAX Evaluer med måldeposisjon

Parametere i DAX-spørringer

En veldefinert DAX-spørringssetning kan parameteres og deretter brukes om og om igjen med bare endringer i parameterverdiene.

Metoden Execute Method (XMLA) har et XMLA-samlingselement (Parameters Element) som gjør at parametere kan defineres og tilordnes en verdi. I samlingen definerer hvert parameterelement (XMLA) -element navnet på parameteren og en verdi for den.

Referer til XMLA-parametere ved å prefiksere navnet på parameteren med et @ tegn. Alle steder i syntaksen der en verdi er tillatt, kan verdien erstattes med et parameterkall. Alle XMLA-parametere skrives inn som tekst.

Viktig

Parametere som er definert i parameterdelen og som ikke brukes i <STATEMENT-elementet> , genererer et feilsvar i XMLA. Parametere som brukes og ikke er definert i parameterelementet<>, genererer et feilsvar i XMLA.

DAX-setninger
SUMMARIZECOLUMNS
TREATAS
FILTER