DAX'ta üst-alt öğe hiyerarşileri ile ilgili işlevleri anlama

DAX, kullanıcıların modellerinde üst-alt hiyerarşisi olarak sunulan verileri yönetmesine yardımcı olan beş işlev sunar. Kullanıcılar bu işlevleri kullanarak bir satırın sahip olduğu tüm kökenleri, köken ile en üst öğe arasındaki düzey sayısını, geçerli satırın n düzey üstündeki öğenin ne olduğunu, geçerli satır hiyerarşisinde en üstten n alttaki öğenin ne olduğunu ve geçerli satır hiyerarşisindeki belirli bir üst öğeyi alabilir.

DAX içindeki üst-alt öğe işlevleri

Aşağıdaki tabloda şu sütunlara uygulanmış bir üst-alt hiyerarşisi bulunmaktadır: Tüm işlev örneklerinde kullanılan EmployeeKey ve ParentEmployeeKey sütunları.

EmployeeKey ParentEmployeeKey
112
14 112
3 14
11 3
13 3
162 3
117 162
221 162
81 162

Yukarıdaki tabloda gördüğünüz gibi 112 numaralı çalışan için tanımlanmış üst öğe yoktur, 14 numaralı çalışanın yöneticisi 112 numaralı çalışandır (ParentEmployeeKey), 3 numaralı çalışanın yöneticisi 14 numaralı çalışandır ve 11, 13 ile 162 numaralı çalışanların yöneticisi 3 numaralı çalışandır. Yukarıdaki veriler, 112 numaralı çalışanın üzerinde bir yönetici olmadığını ve burada gösterilen tüm çalışanların en üst düzey yöneticisi olduğunu gösterir. Aynı zamanda 3 numaralı çalışan 14 numaralı çalışana, 11, 13 ve 162 numaralı çalışanlar da 3 numaralı çalışana rapor vermektedir.

Aşağıdaki tabloda kullanılabilir işlevler, işlevlerin kısa açıklamaları ve işlevlerin yukarıda gösterilen verilere uygulandığı örnekler verilmiştir.

PATH işlevi: En eskiden veya en üsttekinden başlayıp geçerli olana kadar devam ederek geçerli satırın tüm üst öğelerinin tanımlayıcılarını içeren sınırlandırılmış bir metin döndürür.

EmployeeKey ParentEmployeeKey Yol
112 112
14 112 112|14
3 14 112|14|3
11 3 112|14|3|11
13 3 112|14|3|13
162 3 112|14|3|162
117 162 112|14|3|162|117
221 162 112|14|3|162|221
81 162 112|14|3|162|81

PATHLENGTH işlevi: Belirli bir PATH() içinde geçerli düzeyden başlayıp en eski veya en üstteki düzeye kadar olan düzeylerin sayısını döndürür. Aşağıdaki örnekte PathLength sütunu “= PATHLENGTH([Path])” olarak tanımlanmıştır. Bu işlevin nasıl çalıştığının anlaşılmasına yardımcı olmak için örnekte Path() örneğindeki tüm verilere yer verilmiştir.

EmployeeKey ParentEmployeeKey Yol PathLength
112 112 1
14 112 112|14 2
3 14 112|14|3 3
11 3 112|14|3|11 4
13 3 112|14|3|13 4
162 3 112|14|3|162 4
117 162 112|14|3|162|117 5
221 162 112|14|3|162|221 5
81 162 112|14|3|162|81 5

PATHITEM işlevi: PATH() gibi bir sonuçta soldan sağa doğru sayım yaparak belirtilen konumdaki öğeyi döndürür. Aşağıdaki örnekte soldan 4. olan PathItem sütunu, “= PATHITEM([Path], 4)” olarak tanımlanmıştır. Bu örnek, Path() örneğindeki örnek verileri kullanarak Path dizesinde soldan dördüncü EmployeKey anahtarını döndürmektedir.

EmployeeKey ParentEmployeeKey Yol PathItem - Soldan 4.
112 112
14 112 112|14
3 14 112|14|3
11 3 112|14|3|11 11
13 3 112|14|3|13 13
162 3 112|14|3|162 162
117 162 112|14|3|162|117 162
221 162 112|14|3|162|221 162
81 162 112|14|3|162|81 162

PATHITEMREVERSE işlevi: PATH() gibi bir işlevin sonucunda sağdan sola doğru sayarak konum içindeki öğeyi döndürür.
Aşağıdaki örnekte sağdan 3. olan PathItemReverse sütunu, “= PATHITEMREVERSE([Path], 3)” olarak tanımlanmıştır. Bu örnek, Path() örneğindeki örnek verileri kullanarak Path dizesinde sağdan üçüncü EmployeKey anahtarını döndürmektedir.

EmployeeKey ParentEmployeeKey Yol PathItemReverse - Sağdan 3.
112 112
14 112 112|14
3 14 112|14|3 112
11 3 112|14|3|11 14
13 3 112|14|3|13 14
162 3 112|14|3|162 14
117 162 112|14|3|162|117 3
221 162 112|14|3|162|221 3
81 162 112|14|3|162|81 3

PATHCONTAINS işlevi: Belirtilen öğe, belirtilen yol içinde yer alıyorsa TRUE döndürür. Aşağıdaki örnek PathContains - 162 çalışanı ' ' olarak tanımlanmıştır; verilen yol 162 çalışanı içeriyorsa bu örnek = PATHCONTAINS([Path], "162")= PATHCONTAINS([Path], "162") döndürür. Bu örnek, yukarıdaki Path() örneğinde elde edilen sonuçları kullanır.

EmployeeKey ParentEmployeeKey Yol PathContains - 162 numaralı çalışan
112 112 FALSE
14 112 112|14 FALSE
3 14 112|14|3 FALSE
11 3 112|14|3|11 FALSE
13 3 112 | 14 | 3 | 13 FALSE
162 3 112 | 14 | 3 | 162 TRUE
117 162 112 | 14 | 3 | 162 | 117 TRUE