Share via


DAX sorguları

Power BI ve Excel gibi raporlama istemcileri, rapora alan yerleştirildiğinde veya filtre uygulandığında DAX sorguları yürütür. SQL Server Management Studio (SSMS), Power BI Rapor Oluşturucusu ve DAX Studio gibi açık kaynak araçları kullanarak kendi DAX sorgularınızı oluşturabilir ve çalıştırabilirsiniz. DAX sorguları sonuçları doğrudan aracın içinde bir tablo olarak döndürerek DAX formüllerinizin performansını hızlı bir şekilde oluşturmanıza ve test etmeye olanak sağlar.

Sorgular hakkında bilgi edinmeden önce, DAX temel bilgilerini iyi anlamanız önemlidir. Henüz yapmadıysanız DAX'a genel bakış bölümüne göz atdığınızdan emin olun.

Anahtar sözcükler

DAX sorgularının tek bir gerekli anahtar sözcük, EVALUATE ve isteğe bağlı birkaç anahtar sözcükten oluşan basit bir söz dizimi vardır: ORDER BY, START AT, DEFINE, MEASURE, VAR, TABLE ve COLUMN. Her anahtar sözcük, sorgu süresi boyunca kullanılan bir deyimi tanımlar.

EVALUATE (Gerekli)

En temel düzeyde, DAX sorgusu tablo ifadesi içeren bir EVALUATE deyimidir. En az bir EVALUATE deyimi gereklidir, ancak sorgu herhangi bir sayıda EVALUATE deyimi içerebilir.

EVALUATE Söz Dizimi

EVALUATE <table>  

EVALUATE Parametreleri

Süre Tanım
table Tablo ifadesi.

EVALUATE Örneği

EVALUATE
    'Internet Sales'

İnternet Satışları tablosundaki tüm satırları ve sütunları tablo olarak döndürür.

DAX Evaluate deyimi

ORDER BY (İsteğe bağlı)

İsteğe bağlı ORDER BY anahtar sözcüğü, sorgu sonuçlarını sıralamak için kullanılan bir veya daha fazla ifadeyi tanımlar. Sonucun her satırı için değerlendirilebilecek tüm ifadeler geçerlidir.

ORDER BY Sözdizimi

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

ORDER BY Parametreleri

Süre Tanım
ifade Tek bir skaler değer döndüren herhangi bir DAX ifadesi.
ASC (varsayılan) Artan sıralama düzeni.
DESC Azalan sıralama düzeni.

ORDER BY Örneği

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

İnternet Satışları tablosundaki tüm satırları ve sütunları, Sipariş Tarihi'ne göre artan düzende, tablo olarak döndürür.

DAX Deyimine göre sıralamayı değerlendirme

START AT (İsteğe bağlı)

İsteğe bağlı START AT anahtar sözcüğü bir ORDER BY yan tümcesi içinde kullanılır. Sorgu sonuçlarının başladığı değeri tanımlar.

SÖZ DIZIMİNDE BAŞLA

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

START AT Parameters

Süre Tanım
değer Sabit bir değer. İfade olamaz.
parametre XmlA deyiminde bir karakter ön ekli bir @ parametrenin adı.

START AT Açıklamalar

START AT bağımsız değişkenlerinin ORDER BY yan tümcesindeki sütunlarla birebir bir yazışması vardır. START AT yan tümcesinde ORDER BY yan tümcesinde olduğu kadar çok bağımsız değişken olabilir, ancak daha fazla olamaz. START AT içindeki ilk bağımsız değişken, ORDER BY sütunlarının 1. sütunundaki başlangıç değerini tanımlar. START AT içindeki ikinci bağımsız değişken, 1. sütun için ilk değeri karşılayan satırların içindeki ORDER BY sütunlarının 2. sütunundaki başlangıç değerini tanımlar.

START AT Örneği

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

SO7000'den başlayarak İnternet Satışları tablosundaki tüm satırları ve sütunları Satış Siparişi Numarası'na göre artan düzende döndürür.

DAX Siparişi Satış siparişi numarası tablosuna göre değerlendirme

DEFINE (İsteğe bağlı)

İsteğe bağlı DEFINE anahtar sözcüğü, yalnızca sorgu süresi boyunca var olan bir veya daha fazla hesaplanan varlık tanımı sağlar. Tanımlar EVALUATE deyiminden öncedir ve sorgudaki tüm EVALUATE deyimleri için geçerlidir. Tanımlar değişkenler, ölçüler, tablo1 ve sütun1 olabilir. Tanımlar, geçerli tanımdan önce veya sonra görünen diğer tanımlara başvurabilir. DEFINE anahtar sözcüğü sorguya dahil edilirse en az bir tanım gereklidir.

DEFINE Söz Dizimi

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

Süre Tanım
Entity ÖLÇÜ, VAR, TABLO1 veya SÜTUN1.
Adı Ölçü, var, tablo veya sütun tanımının adı. Bu bir ifade olamaz. Adın benzersiz olması gerekmez. Ad yalnızca sorgunun süresi boyunca var olur.
ifade Tablo veya skaler değer döndüren herhangi bir DAX ifadesi. İfade tanımlı varlıklardan herhangi birini kullanabilir. Bir skaler ifadeyi tablo ifadesine dönüştürmeniz gerekiyorsa, ifadeyi küme ayracı {}içeren bir tablo oluşturucusunun içine sarmalama veya tek satırlı ROW() tablo döndürmek için işlevini kullanın.

[1]Dikkat: Sorgu kapsamlı TABLE ve COLUMN tanımları yalnızca iç kullanıma yöneliktir. Söz dizimi hatası olmayan bir sorgu için TABLE ve COLUMN ifadeleri tanımlayabilirsiniz ancak bunlar çalışma zamanı hataları oluşturabilir ve önerilmez.

DEFINE Açıklamaları

  • BIR DAX sorgusu birden çok EVALUATE deyimine sahip olabilir, ancak yalnızca bir DEFINE deyimine sahip olabilir. DEFINE deyimindeki tanımlar sorgudaki tüm EVALUATE deyimlerine uygulanabilir.

  • DEFINE deyiminde en az bir tanım gereklidir.

  • Sorgu için ölçü tanımları aynı ada sahip model ölçülerini geçersiz kılar, ancak yalnızca sorgu içinde kullanılır. Bunlar model ölçüsünü etkilemez.

  • VAR adlarının benzersiz kısıtlamaları vardır. Daha fazla bilgi için bkz . VAR - Parametreler.

DEFINE Örneği

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]

2013 ve 2014 yıllarının hesaplanan toplam satışlarını ve 2013 ve 2014 yıllarının hesaplanan toplam satışlarını tablo olarak döndürür. DEFINE deyimindeki ölçü olan İnternet Toplam Satışları hem Toplam Satışlar hem de Birleşik Yıllar Toplam Satış ifadelerinde kullanılır.

DAX Ölçü saptırma ile değerlendirme

DAX sorgularındaki parametreler

İyi tanımlanmış bir DAX sorgu deyimi parametreleştirilebilir ve ardından yalnızca parametre değerlerindeki değişikliklerle tekrar tekrar kullanılabilir.

Execute Metodu (XMLA) yönteminde parametrelerin tanımlanmasına ve bir değer atanmasına izin veren bir Parameters Öğesi (XMLA) koleksiyon öğesi vardır. Koleksiyon içinde, her Parametre Öğesi (XMLA) öğesi parametrenin adını ve buna bir değeri tanımlar.

Parametrenin adını bir @ karakterle ön ekleyerek XMLA parametrelerine başvurun. Söz diziminde bir değere izin verilen herhangi bir yerde, değer parametre çağrısıyla değiştirilebilir. Tüm XMLA parametreleri metin olarak yazılır.

Önemli

Parametreler bölümünde tanımlanan ve STATEMENT> öğesinde <kullanılmayan parametreler XMLA'da bir hata yanıtı oluşturur. Parametreler öğesinde kullanılan ve tanımlanmayan <parametreler> XMLA'da bir hata yanıtı oluşturur.

DAX deyimleri
SUMMARIZECOLUMNS
TREATAS
FİLTRE