การทำความเข้าใจฟังก์ชันสำหรับลำดับขั้นหลัก-รองใน 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 | เส้นทาง |
|---|---|---|
| 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 | เส้นทาง | 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 | เส้นทาง | PathItem - ลำดับที่ 4 จากซ้าย |
|---|---|---|---|
| 112 | 112 | ||
| 14 | 112 | 112|14 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 | เส้นทาง | PathItemReverse - ลำดับที่ 3 จากขวา |
|---|---|---|---|
| 112 | 112 | ||
| 14 | 112 | 112|14 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") นี้แสดงค่า = PATHCONTAINS([Path], "162") ถ้าเส้นทางที่กําหนดประกอบด้วยพนักงาน 162 ตัวอย่างนี้ใช้ผลลัพธ์จากตัวอย่าง Path() ข้างต้น
| EmployeeKey | ParentEmployeeKey | เส้นทาง | PathContains - พนักงาน 162 |
|---|---|---|---|
| 112 | 112 | FALSE | |
| 14 | 112 | 112|14 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 |