İç 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.