2017-06-01 3 views
0

Je garde le moment à chaque fois que je tente d'exécuter cette requête. Il semble fonctionner jusqu'à ce que j'ajoute dans la section "([produit fini]. [Primaire] .MEMBERS", dans la section de lignes de la requête.)MDX requête avec Crossjoin et filtre fois sur

SELECT NON EMPTY {[Measures]. Marge Pcnt (Réel, Total WB, LE)], [Mesures]. [Incr. Unités Cnsmp (Réelles)]} COLONNES ON,

NON VIDE {[Produit fini]. [Principal] .MEMBRES * [Plan de promotion] . [Plan de promotion]. [Événement] .MEMBRES} AYANT GAUCHE ([Plan de promotion]. [Plan de promotion] .CurrentMember.Name, 6) = "Anchor" ON ROWS FROM [PEA] OERE ([Heure]. [fiscale]. [l'exercice]. & [2017])

Répondre

0

Essayez le mot clé "non vide", qui évalue l'ensemble au niveau de l'axe, "non vide" est évalué en haut de la requête, ce qui peut poser un problème de performance pour un grand ensemble.

nonvides ( nonvides ([produit fini]. .Members [primaires], [votre mesure]) * [plan de promotion]. .Members [du plan de promotion], [votre mesure])

Il juste référence, et vous avez besoin de faire quelques changements pour votre cas.

espérons que ça aide.

MDXHelper: IDE à écrire, Analyser, Tuning, Debug MDX efficacement

0

de filtrage Essayez avant la Crossjoin:

SELECT NON EMPTY {[Measures].[Retailer Event Margin Pcnt (Actual, WB Total, LE)], [Measures].[Incr Cnsmp Units (Actual)]} ON COLUMNS, 

NON EMPTY [Finished Product].[Primary].MEMBERS 
* Filter([Promotion Plan].[Promotion Plan].[Event].MEMBERS, LEFT([Promotion Plan].[Promotion Plan].CurrentMember.Name, 6) = "Anchor") 
ON ROWS FROM [PEA] 
WHERE ([Time].[Fiscal].[Fiscal Year].&[2017])