2016-12-14 4 views
0

То, что я пытаюсь сделать; Пользователь выберет значение области из раскрывающегося списка (Region1, Region2, Region3). @Region должен принять это значение в запросе mdx. , например. если пользователь выбирает Region2, он должен выглядеть так: [Region]. [Region2]. Дети. Запрос, который я написал, показывает, что есть синтаксическая ошибка.передающий параметр в запросе mdx

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]; 

ответ

0

Вы также доступна функция strToSet так это:

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

Может быть записано как:

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

, но я уверен в цели этой части кода ?

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

Я не вижу цели использования параметра - вы могли бы сделать что-то вроде этого?

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