Bagikan melalui


Kueri DAX

Melaporkan klien seperti Power BI dan Excel menjalankan kueri DAX setiap kali bidang ditempatkan pada laporan atau saat filter diterapkan. Dengan menggunakan SQL Server Management Studio (SSMS), Power BI Report Builder, dan alat sumber terbuka seperti DAX Studio, Anda dapat membuat dan menjalankan kueri DAX Anda sendiri. Kueri DAX mengembalikan hasil sebagai tabel tepat di dalam alat, memungkinkan Anda untuk dengan cepat membuat dan menguji performa rumus DAX Anda.

Sebelum mempelajari tentang kueri, penting untuk memahami dasar-dasar DAX. Jika Anda belum melakukannya, pastikan untuk memeriksa gambaran umum DAX.

Kata Kunci

Kueri DAX memiliki sintaks sederhana yang terdiri dari hanya satu kata kunci yang diperlukan, EVALUASI, dan beberapa kata kunci opsional: ORDER BY, START AT, DEFINE, MEASURE, VAR, TABLE, dan COLUMN. Setiap kata kunci menentukan pernyataan yang digunakan selama durasi kueri.

EVALUASI (Diperlukan)

Pada tingkat paling dasar, kueri DAX adalah pernyataan EVALUATE yang berisi ekspresi tabel. Setidaknya satu pernyataan EVALUATE diperlukan, namun, kueri dapat berisi sejumlah pernyataan EVALUATE.

Sintaks EVALUASI

EVALUATE <table>  

EVALUASI Parameter

Term Definisi
tabel Ekspresi tabel.

Contoh EVALUASI

EVALUATE
    'Internet Sales'

Mengembalikan semua baris dan kolom dari tabel Internet Sales, sebagai tabel.

Pernyataan Evaluasi DAX

ORDER BY (Opsional)

Kata kunci ORDER BY opsional menentukan satu atau beberapa ekspresi yang digunakan untuk mengurutkan hasil kueri. Ekspresi apa pun yang dapat dievaluasi untuk setiap baris hasil valid.

Sintaks ORDER BY

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

Parameter ORDER BY

Term Definisi
expression Ekspresi DAX apa pun yang mengembalikan nilai skalar tunggal.
ASC (default) Urutan urutan naik.
DESC Urutan urutan turun.

Contoh ORDER BY

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

Mengembalikan semua baris dan kolom dari tabel Internet Sales, dalam urutan naik menurut Tanggal Pesanan, sebagai tabel.

DAX Mengevaluasi urutan menurut pernyataan

MULAI DARI (Opsional)

Kata kunci START AT opsional digunakan di dalam klausa ORDER BY. Ini menentukan nilai di mana hasil kueri dimulai.

Sintaks START AT

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

PARAMETER START AT

Term Definisi
value Nilai konstanta. Tidak dapat berupa ekspresi.
parameter Nama parameter dalam pernyataan XMLA yang diawali dengan @ karakter.

MULAI DARI Komentar

Argumen START AT memiliki korespondensi satu-ke-satu dengan kolom dalam klausa ORDER BY. Mungkin ada argumen sebanyak mungkin dalam klausa START AT seperti yang ada di klausa ORDER BY, tetapi tidak lebih. Argumen pertama dalam START AT menentukan nilai awal di kolom 1 kolom ORDER BY. Argumen kedua dalam START AT menentukan nilai awal di kolom 2 kolom ORDER BY dalam baris yang memenuhi nilai pertama untuk kolom 1.

Contoh START AT

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

Mengembalikan semua baris dan kolom dari tabel Penjualan Internet, dalam urutan naik menurut Nomor Pesanan Penjualan, dimulai dari SO7000.

DAX Mengevaluasi pesanan menurut pernyataan nomor pesanan Penjualan

DEFINE (Opsional)

Kata kunci DEFINE opsional memperkenalkan satu atau beberapa definisi entitas terhitung yang hanya ada selama durasi kueri. Definisi mendahului pernyataan EVALUATE dan valid untuk semua pernyataan EVALUATE dalam kueri. Definisi dapat berupa variabel, pengukuran, tabel1, dan kolom1. Definisi dapat mereferensikan definisi lain yang muncul sebelum atau sesudah definisi saat ini. Setidaknya satu definisi diperlukan jika kata kunci DEFINE disertakan dalam kueri.

SintaksIS DEFINISI

[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>) +

PARAMETER DEFINE

Term Definisi
Entity PENGUKURAN, VAR, TABEL1, atau KOLOM1.
nama Nama pengukuran, var, tabel, atau definisi kolom. Ini tidak bisa menjadi ekspresi. Nama tidak harus unik. Nama hanya ada selama durasi kueri.
expression Ekspresi DAX apa pun yang mengembalikan tabel atau nilai skalar. Ekspresi dapat menggunakan salah satu entitas yang ditentukan. Jika ada kebutuhan untuk mengonversi ekspresi skalar menjadi ekspresi tabel, bungkus {}ekspresi di dalam konstruktor tabel dengan kurung kurawal , atau gunakan ROW() fungsi untuk mengembalikan tabel baris tunggal.

[1] Perhatian: Definisi TABEL dan KOLOM dalam cakupan kueri dimaksudkan hanya untuk penggunaan internal. Meskipun Anda dapat menentukan ekspresi TABLE dan COLUMN untuk kueri tanpa kesalahan sintaks, ekspresi tersebut dapat menghasilkan kesalahan runtime dan tidak disarankan.

TENTUKAN Keterangan

  • Kueri DAX dapat memiliki beberapa pernyataan EVALUATE, tetapi hanya dapat memiliki satu pernyataan DEFINE. Definisi dalam pernyataan DEFINE dapat berlaku untuk pernyataan EVALUATE apa pun dalam kueri.

  • Setidaknya satu definisi diperlukan dalam pernyataan DEFINE.

  • Mengukur definisi untuk ukuran model penggantian kueri dengan nama yang sama tetapi hanya digunakan dalam kueri. Mereka tidak akan memengaruhi ukuran model.

  • Nama VAR memiliki batasan unik. Untuk mempelajari lebih lanjut, lihat VAR - Parameter.

Contoh DEFINE

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]

Mengembalikan total penjualan terhitung untuk tahun 2013 dan 2014, dan gabungan menghitung total penjualan selama tahun 2013 dan 2014, sebagai tabel. Ukuran dalam pernyataan DEFINE, Total Penjualan Internet, digunakan dalam ekspresi Total Penjualan dan Total Penjualan Tahun Gabungan.

DAX Evaluasi dengan defnisi pengukuran

Parameter dalam kueri DAX

Pernyataan kueri DAX yang terdefinisi dengan baik dapat diparameterkan lalu digunakan berulang-ulang hanya dengan perubahan nilai parameter.

Metode Execute Method (XMLA) memiliki elemen koleksi Parameters Element (XMLA) yang memungkinkan parameter ditentukan dan diberi nilai. Dalam koleksi, setiap elemen Parameter Element (XMLA) mendefinisikan nama parameter dan nilai untuknya.

Mereferensikan parameter XMLA dengan mengawali nama parameter dengan @ karakter. Setiap tempat dalam sintaks di mana nilai diizinkan, nilai dapat diganti dengan panggilan parameter. Semua parameter XMLA di ketik sebagai teks.

Penting

Parameter yang ditentukan di bagian parameter dan tidak digunakan dalam <elemen STATEMENT> menghasilkan respons kesalahan di XMLA. Parameter yang digunakan dan tidak ditentukan dalam <elemen Parameter> menghasilkan respons kesalahan di XMLA.

Pernyataan DAX
SUMMARIZECOLUMNS
TREATAS
FILTER