2017-06-08 2 views
0

Je me bats avec la déclaration suivante:MDX: appel de procédure non valide ou argument lorsque retranchant

WITH MEMBER [Measures].[Diff Geo Volumen Artikelnummer] as 

[D_Artikel].[Geo Max Volumen Artikelnummer].CurrentMember.Member_Value- --remark1 
[D_Artikel].[Geo Min Volumen Artikelnummer].CurrentMember.Member_Value 



SELECT non empty 
{[Measures].[Menge_Artikel_Stk], [Measures].[Diff Geo Volumen Artikelnummer]} on 0, 

NON EMPTY 
crossjoin(
filter([D_Artikel].[Artikelnummer].[Artikelnummer],[Measures].[Diff Geo Volumen Artikelnummer]>0) , -- remark2 
[D_Artikel].[Geo Max Volumen Artikelnummer].[Geo Max Volumen Artikelnummer], 
[D_Artikel].[Geo Min Volumen Artikelnummer].[Geo Min Volumen Artikelnummer]) 
on 1 
FROM [Tag_PL_Bestand_Cube_TM] 
WHERE ([D_Datum].[Datum].[Tag].&[2017-06-06T00:00:00]) 

Members of Dimension

1) Remarque 1: Le calcul fonctionne lors du remplacement du soustractions avec un ajout. Pourquoi? 2) remarque2: La soustraction fonctionne quand n'utilise pas la fonction de filtre ...

Malheureusement, je veux filtrer et soustraire ... Finalement, je veux utiliser Excel Pivot pour accéder aux données et créer la nouvelle mesure dans Excel .

Le message d'erreur indique: L'exécution de la requête ... La requête (3, 1) Typenkonflikt beim Soustraire-opérateur. Systemfehler: procédure non valide Argument ou appel complet Exécuter

* Typenkonflikt = incompatibilité de type

Au lieu de la Member_Value J'ai aussi essayé .Value et .MemberValue

Répondre

0

Cela vous indique la ligne 3 est en faute : requête (, 1)

Commentaires à mdx sont ignorés en utilisant // pas comme sql --

Cela devrait mieux fonctionner:

WITH MEMBER [Measures].[Diff Geo Volumen Artikelnummer] as 
    //remark1 
    [D_Artikel].[Geo Max Volumen Artikelnummer].CurrentMember.Member_Value- 
    [D_Artikel].[Geo Min Volumen Artikelnummer].CurrentMember.Member_Value 
... 
... 
+0

Merci pour vos commentaires. J'ai effectivement ajouté la remarque - les commentaires seulement ici dans la fenêtre de texte. Mais après avoir essayé différentes choses j'ai trouvé une solution que je ne comprends pas vraiment mais qui a bien servi: Au lieu d'utiliser la fonction Member_Value, je l'ai remplacé par .Properties ("Key0", tapé) Une autre approche est en utilisant DAX au lieu de MDX je suppose. Cela me semble plus simple pour des calculs faciles. – rasenkantenstein