Ana içeriğe geç Skip to complementary content

İç ve dış set ifadeleri

Set ifadeleri toplama fonksiyonlarının içinde ve dışında kullanılabilir ve küme ayraçları içine alınır.

Bir toplama fonksiyonunun içinde bir set ifadesi kullandığınızda, şu şekilde görünebilir:

Örnek: İç set ifadesi

Sum( {$<Year={2021}>} Sales )

Birden fazla toplaması olan ifadeleriniz varsa ve aynı set ifadesini her toplama fonksiyonunda tekrar yazmak zorunda kalmak istemiyorsanız, toplama fonksiyonunun dışında bir set ifadesi kullanın.

Bir dış set ifadesi kullanırsanız, ifade kapsamın başına yerleştirilmelidir.

Örnek: Dış set ifadesi

{<Year={2021}>} Sum(Sales) / Count(distinct Customer)

Toplama fonksiyonunun dışında bir set ifadesi kullanırsanız, ifadeyi mevcut ana hesaplamalara uygulayabilirsiniz.

Örnek: Ana hesaplamaya uygulanmış dış set ifadesi

{<Year={2021}>} [Master Measure]

Toplama fonksiyonlarının dışında kullanılan bir set ifadesi, ayraç içine alınmazsa tüm ifadeyi etkiler; alınırsa ayraçlar kapsamı tanımlar. Aşağıdaki sözcüksel kapsamlandırma örneğinde set ifadesi yalnızca ayraçlar içindeki toplamaya uygulanır.

Örnek: Sözcüksel kapsamlandırma

( {<Year={2021}>} Sum(Amount) / Count(distinct Customer) ) – Avg(CustomerSales)

Kurallar

Sözcüksel kapsam

Set ifadesi, ayraç içine alınmazsa tüm ifadeyi etkiler. Alınırsa, ayraçlar sözcüksel kapsamı tanımlar.

Konum

Set ifadesi sözcüksel kapsamın başına yerleştirilmelidir.

Bağlam

Bağlam, ifade ile ilgili olan seçimdir. Geleneksel olarak bağlam, her zaman geçerli seçimin varsayılan durumu olmuştur. Ancak nesne farklı bir duruma ayarlanırsa, bağlam geçerli seçimin alternatif durumudur.

Ayrıca bir dış set ifadesi biçiminde de bir bağlam tanımlayabilirsiniz.

Devralma

İç set ifadelerinin dış set ifadelerine göre önceliği vardır. İç set ifadeleri bir set tanımlayıcısı içeriyorsa, bağlamın yerini alır. Aksi halde bağlam ve set ifadesi birleştirilir.

  • {$<SetExpression>} - dış set ifadesini geçersiz kılar

  • {<SetExpression>} - dış set ifadesiyle birleştirilir

Öğe seti ataması

Öğe seti ataması, iki seçimin birleştirilme şeklini belirler. Normal bir eşittir işareti kullanılırsa, iç set ifadesindeki seçimin önceliği vardır. Aksi halde örtük set işleci kullanılır.

  • {<Field={value}>} - bu iç seçim, “Field” içindeki tüm dış seçimlerin yerini alır.

  • {<Field+={value}>} - bu iç seçim, birleşim işleci kullanılarak “Field” içindeki dış seçimle birleştirilir.

  • {<Field*={value}>} - bu iç seçim, kesişim işleci kullanılarak “Field” içindeki dış seçimle birleştirilir.

Birden fazla adımda devralma

Devralma birden fazla adımda gerçekleşebilir. Örnekler:

  • Geçerli Seçim → Sum(Amount)

    Toplama fonksiyonu, burada geçerli seçim olan bağlamı kullanır.

  • Geçerli Seçim → {<Set1>} Sum(Amount)

    Set1 geçerli seçimi devralır ve sonuç toplama fonksiyonunun bağlamı olur.

  • Geçerli Seçim → {<Set1>} ({<Set2>} Sum(Amount))

    Set2 Set1'i devralır; o ise geçerli seçimi devralır ve sonuç toplama fonksiyonunun bağlamı olur.

Aggr() fonksiyonu

Aggr() fonksiyonu, iki bağımsız toplaması olan iç içe bir toplama oluşturur. Aşağıdaki örnekte her Dim değeri için bir Count() hesaplanır ve ortaya çıkan dizi Sum() fonksiyonu kullanılarak toplanır.

Örnek:  

Sum(Aggr(Count(X),Dim))

Count() iç toplama, Sum() ise dış toplamadır.

  • İç toplama dış toplamadan herhangi bir bağlam devralmaz.

  • İç toplama, bağlamı bir set ifadesi içeriyor olabilecek Aggr() fonksiyonundan devralır.

  • Gerek Aggr() fonksiyonu gerekse dış toplama fonksiyonu bağlamı bir dış set ifadesinden devralır.