2016-12-14 3 views
0

Was ich versuche zu tun ist; Der Benutzer würde den Wert der Region aus der Dropdown-Liste auswählen (Region1, Region2, Region3). @Region sollte diesen Wert in der MDX-Abfrage übernehmen. für zB. Wenn der Benutzer Region2 auswählt, sollte er wie folgt aussehen: [Region]. [Region2] .kinder. Die Abfrage, die ich geschrieben habe, zeigt, dass es einen Syntaxfehler gibt.Übergabe Parameter in MDX Abfrage

WITH 
    MEMBER [measures].[region] AS 
    StrToMember("[Region].[" + @Region + "]").CurrentMember.Name 
    MEMBER [measures].[product] AS 
    [Product Line].[product Line L2].CurrentMember.Name 
SELECT 
    NonEmpty 
    (
     StrToMember("[Region].[" + @Region + "]").Children 
    * 
     [Product Line].[Product Line L2].Children 
    ,[Measures].[Total Clients] 
) ON ROWS 
,{ 
    [measures].[region] 
    ,[measures].[product] 
    ,[Measures].[Total Clients] 
    } ON COLUMNS 
FROM [EQ Coverage]; 

Antwort

0

Sie haben auch die Funktion strToSet so folgt aus:

StrToMember("[Region].[" + @Region + "]").Children 

geschrieben werden als:

StrToSet("[Region].[" + @Region + "].Children", CONSTRAINED) 

aber ich bin nicht sicher, der Zweck dieses Teils des Codes ?

MEMBER [measures].[region] AS 
    StrToMember("[Region].[" + @Region + "]").CurrentMember.Name 

Ich sehe nicht den Zweck der Verwendung des Parameters - Sie könnten so etwas tun?

MEMBER [measures].[region] AS 
    [Region].[Region].CurrentMember.member_caption