การทําความเข้าใจฟังก์ชันสําหรับลําดับชั้นหลัก-รองใน DAX
DAX มีฟังก์ชันห้ารายการเพื่อช่วยให้ผู้ใช้สามารถจัดการข้อมูลที่แสดงเป็นลําดับชั้นหลัก-รองในแบบจําลองของพวกเขา ด้วยฟังก์ชันนี้ ผู้ใช้จะสามารถรับสายข้อมูลระดับหลักทั้งหมดในแถวจะมีจํานวนกี่ระดับที่มีสายข้อมูลระดับหลักสูงสุด ซึ่งเป็นระดับ n หลักที่อยู่เหนือแถวปัจจุบัน ซึ่งคือโหนดสืบทอด n จากด้านบนของลําดับชั้นแถวปัจจุบัน และเป็นรายการหลักในลําดับชั้นแถวปัจจุบันหรือไม่
ฟังก์ชันหลัก-รองใน DAX
ตารางต่อไปนี้ประกอบด้วยลําดับชั้นหลัก-รองในคอลัมน์: EmployeeKey และ ParentEmployeeKey ที่ใช้ในตัวอย่างฟังก์ชันทั้งหมด
EmployeeKey | ParentEmployeeKey |
---|---|
112 | |
14 | 112 |
3 | 14 |
11 | 3 |
13 | 3 |
162 | 3 |
117 | 162 |
221 | 162 |
81 | 162 |
ในตารางข้างต้น คุณสามารถดูว่า พนักงาน 112 ไม่มีการกําหนดรายการหลัก พนักงาน 14 มีพนักงาน 112 เป็นผู้จัดการ (ParentEmployeeKey) พนักงาน 3 มีพนักงาน 14 เป็นผู้จัดการและพนักงาน 11, 13 และ 162 มีพนักงาน 3 เป็นผู้จัดการ ตารางข้างต้นนี้ช่วยให้เข้าใจว่าพนักงาน 112 ไม่มีผู้จัดการใดอยู่เหนือเธอและเธอเป็นผู้จัดการสูงสุดสําหรับพนักงานทุกคนที่แสดงที่นี่ นอกจากนี้ พนักงาน 3 จะรายงานไปยังพนักงาน 14 และพนักงาน 11, 13, 162 จะรายงานต่อ 3
ตารางต่อไปนี้แสดงฟังก์ชันที่พร้อมใช้งาน คําอธิบายโดยย่อของฟังก์ชัน และตัวอย่างของฟังก์ชันในข้อมูลเดียวกันที่แสดงไว้ข้างต้น
ฟังก์ชัน PATH - ส่งกลับข้อความที่คั่นด้วยตัวระบุของรายการหลักทั้งหมดไปยังแถวปัจจุบัน โดยเริ่มต้นจากรายการที่เก่าที่สุดหรือสูงสุดไปจนถึงรายการปัจจุบัน
EmployeeKey | ParentEmployeeKey | Path |
---|---|---|
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 - แสดงจํานวนระดับใน PATH() ที่กําหนด โดยเริ่มต้นที่ระดับปัจจุบันจนถึงระดับหลักสูงสุดหรือเก่าที่สุด ในตัวอย่างต่อไปนี้ คอลัมน์ PathLength ถูกกําหนดเป็น '= PATHLENGTH([Path])
' ตัวอย่างจะรวมข้อมูลทั้งหมดจากตัวอย่าง Path() เพื่อช่วยให้เข้าใจวิธีการทํางานของฟังก์ชันนี้
EmployeeKey | ParentEmployeeKey | Path | 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 - แสดงรายการที่ตําแหน่งที่ระบุจาก PATH() เช่น ผลลัพธ์ โดยนับจากซ้ายไปขวา ในตัวอย่างต่อไปนี้ คอลัมน์ PathItem - ที่ 4 จากซ้ายถูกกําหนดเป็น '= PATHITEM([Path], 4)
' ตัวอย่างนี้แสดง EmployeKey ที่ตําแหน่งที่สี่ในสตริงเส้นทางจากด้านซ้าย โดยใช้ข้อมูลตัวอย่างเดียวกันจากตัวอย่าง Path()
EmployeeKey | ParentEmployeeKey | Path | PathItem - อันดับ 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 - แสดงรายการที่ ตําแหน่ง จาก PATH() เช่น ผลลัพธ์ของฟังก์ชัน โดยนับถอยหลังจากขวาไปซ้าย
ในตัวอย่างต่อไปนี้ คอลัมน์ PathItemReverse - อันดับ 3 จากขวาถูกกําหนดเป็น '= PATHITEMREVERSE([Path], 3)
' ตัวอย่างนี้ส่งกลับ EmployeKey ที่ตําแหน่งที่สามในสตริงเส้นทางจากด้านขวา โดยใช้ข้อมูลตัวอย่างเดียวกันจากตัวอย่าง Path()
EmployeeKey | ParentEmployeeKey | Path | PathItemReverse - อันดับ 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 - ส่งกลับค่า TRUE ถ้ารายการที่ระบุอยู่ภายในเส้นทางที่ระบุ ในตัวอย่างต่อไปนี้ คอลัมน์ PathContains - พนักงาน 162 ถูกกําหนดเป็น '= PATHCONTAINS([Path], "162")
' ตัวอย่างนี้แสดง ค่า TRUE ถ้าเส้นทางที่กําหนดประกอบด้วยพนักงาน 162 ตัวอย่างนี้ใช้ผลลัพธ์จากตัวอย่าง Path() ข้างต้น
EmployeeKey | ParentEmployeeKey | Path | PathContains - พนักงาน 162 |
---|---|---|---|
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 |