Je dois définir un membre calculé dans MDX (c'est SAS OLAP, mais j'apprécierais les réponses de personnes qui travaillent avec différentes implémentations OLAP de toute façon).Définition d'un membre calculé dans MDX - filtrage de la valeur d'une mesure
La valeur de la nouvelle mesure doit être calculée à partir d'une mesure existante en appliquant une condition de filtre supplémentaire. Je suppose que ce sera plus clair avec un exemple:
- Mesure existante: "Le trafic total"
- dimension existante: "Direction" ("In" ou "Out")
- Je dois créer un calcul membre "Trafic entrant", qui équivaut à "Trafic total" avec un filtre supplémentaire (Direction = "In")
Le problème est que je ne connais pas MDX et que mon planning est très serré (donc désolé pour une question de débutant). Le mieux que je pouvais trouver est:
([Measures].[Total traffic], [Direction].[(All)].[In])
Ce qui fonctionne presque, à l'exception des cellules avec direction spécifique:
il ressemble le filtre « intrinsèque » sur la direction est surchargée par mon propre filtre). J'ai besoin d'une intersection du filtre "intrinsèque" et du mien. Mon intuition était que cela a à voir avec Intersection [Direction].[(All)].[In]
avec les coeurs intrinsèques de la cellule en cours d'évaluation, mais il est difficile de savoir ce dont j'ai besoin sans avoir lu d'abord sur le sujet :)
[edit] Je me suis retrouvé avec
IIF([Direction].currentMember = [Direction].[(All)].[Out],
0,
([Measures].[Total traffic], [Direction].[(All)].[In])
)
..mais au moins dans SAS OLAP cela provoque des requêtes supplémentaires à effectuer (pour calculer la valeur pour [en]) à l'ensemble de données sous-jacentes, donc je ne l'utilisait pas à la fin.
À l'exception du trafic entrant [out] = 0, alors au lieu de "([Mesures]. [Trafic total])" J'ai utilisé "0". Merci beaucoup! – Nickolay