Bon y a déjà un truc qui me saute aux yeux, c'est que le niveau que tu spécifie dans la fonction parallelperiod n'est pas bon par rapport à ce que tu mets dans ton "strtomember".
WITH member [Measures].[N1] AS (parallelperiod([Date de Vente].[CalendarANNEE].[ANNEE], -1, strtomember('[Date de vente - Marché].[CalendarANNEE].[ANNEE].&[' + CStr(@DimExercice) + ']')), [Measures].[MNT Vente])
Ca devrait plutôt être:
WITH member [Measures].[N1] AS (parallelperiod([Date de Vente].[CalendarANNEE].[ANNEE], -1, strtomember('[Date de vente].[CalendarANNEE].[ANNEE].&[' + CStr(@DimExercice) + ']')), [Measures].[MNT Vente])
Vérifie bien aussi les parenthèses ouvrantes et fermantes.
Puis pour valider ta query, exécute là dans le Management Studio en remplaçant ton paramètre par une de ses valeurs (donc le @DimExercice par '2000' par exemple). C'est plus simple. Une fois qu'elle est bonne, tu la copies colle dans ton dataset SSRS en remettant le paramètre.
J'ai également noté que tu fait beaucoup de crossjoin et plusieurs fois sur des attributs différents d'une même dimension. Ca ne me parait pas très bon pour les perfs (enfin, sauf si ton cube contient très peu de données). Essaie de t'arranger pour éviter ça.
Ex: tu fais
[Dim Produit].[NUMERO].[NUMERO].ALLMEMBERS * [Dim Produit].[LIBELLE].[LIBELLE].ALLMEMBERS
Je suppose que c'est pour récupérer le numéro du produit ainsi que son libellé... Tu pourrais probablement éviter cela en créant un membre calculé récupérant le libellé du produit grâce à une "member property". Ou tu pourrais encore configurer la propriété "keycolumn" du numéro de produit à "Numero" et la propriété "namecolumn" à "libellé".
Idem pour ta dimension exercice. A ce niveau là, tu pourrais probablement créer une hiérarchie "Etablissement - Exercice" ou l'inverse qui t'éviterait de faire un crossjoin entre les 2 attributs puisque en SSRS, lorsque tu récupère un membre d'un niveau donné d'une hiérarchie, le query designer inclut automatiquement les parents de ce membre (enfin, le parent de chaque niveau supérieur au niveau récupéré par ta query).
Partager