Κοινή χρήση μέσω


Κατανόηση συναρτήσεων για γονικές-θυγατρικές ιεραρχίες στο 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 από τα αριστερά, χρησιμοποιώντας το ίδιο δείγμα δεδομένων από το παράδειγμα 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 από τα δεξιά, χρησιμοποιώντας το ίδιο δείγμα δεδομένων από το παράδειγμα 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