web-dev-qa-db-fra.com

SSAS Mesure calculée avec portée.

Je construis un SSAS OLAP Cube sur des données météorologiques. Certaines de ces données peuvent être totalisées (par exemple, des précipitations) et certaines ne peuvent pas (comme la direction du vent).

Je veux des totaux, mais uniquement sur les sources de données où cela a du sens. (Où la méthode d'interpolation = 3.)

J'ai essayé d'ajouter une portée avec ceci:

SCOPE ([Measures].[Total]); 
SUM([Data Source].[Interpolation Method].&[3],[Measures].[Total]); 
END SCOPE; 

Et obtenir des avertissements:

Syntaxe de requête non valide. Une requête valide MDX ou DAX était attendue

et:

Une ou plusieurs erreurs ont été rencontrées dans le script MDX

Qu'est-ce que je rate?

2
Sir Swears-a-lot

Je n'ai pas votre base de données SSAS, donc je ne peux pas tester la syntaxe, mais je pense que vous auriez besoin d'écrire votre MDX comme suit (remarquez le THIS= une addition):

SCOPE ([Measures].[Total]); 
THIS = SUM([Data Source].[Interpolation Method].&[3],[Measures].[Total]); 
END SCOPE; 

Voir la documentation pour les détails de la syntaxe.

Certaines mesures, même si elles sont numériques, n'a aucun sens que la somme. Temp, datekey (pourrait être numérique) et d'autres. La solution consiste à marquer cette mesure comme non agrégée dans l'onglet de mesure. De cette façon, cela ne sera pas agrégé.

1
Hila DG