MDX передает переменную в виде строки в Item () - PullRequest
0 голосов
/ 29 августа 2011

Мой запрос MDX выглядит следующим образом:

with set SelectedEntity as '{Union({[Category].[Tertiary Category].Members}, {[Category].[Secondary Category].Members}).Item("Emails")}'
select Crossjoin({[Measures].[Reach]}, {[Age Group].[15-17], [Age Group].[18-24], [Age Group].[25-30], [Age Group].[31-35], [Age Group].[36-40], [Age Group].[40+]}) ON ROWS,
{[SelectedEntity]} ON COLUMNS
from [AppUsage]
where {[Country].[India]}*{[Date].[2011].[April]}*{[Panel].[Syndicate]}

Здесь вместо Item("Emails") я хочу передать переменную примерно так: Item(${category}).Следовательно, мой запрос должен выглядеть примерно так:

with set SelectedEntity as '{Union({[Category].[Tertiary Category].Members}, {[Category].[Secondary Category].Members}).Item(${category})}'
    select Crossjoin({[Measures].[Reach]}, {[Age Group].[15-17], [Age Group].[18-24], [Age Group].[25-30], [Age Group].[31-35], [Age Group].[36-40], [Age Group].[40+]}) ON ROWS,
    {[SelectedEntity]} ON COLUMNS
    from [AppUsage]
    where {[Country].[India]}*{[Date].[2011].[April]}*{[Panel].[Syndicate]}

Но попробуйте передать эту переменную category в этот запрос, он выдаст мне ошибку как Не удалось разобрать запрос.

Я неполучить, где я иду не так?Является ли это правильным способом передачи переменной в Item (), поскольку ей нужна строка.

Примечание: ${category} значение переменной, которое я получаю после выбора объекта в поле Автозаполнение, которое я хочу передатьна вышеуказанный запрос

РЕДАКТИРОВАТЬ:

Когда я передаю значение 'Emails' для переменной категории в запросе, то есть выше Item(${category}), в логах тот же запрос становится Item(Emails).Но вместо этого должно быть что-то вроде этого: Item("Emails").

Мне нужно знать, как передать эту переменную в виде строки в моем запросе MDX mondrian.

1 Ответ

0 голосов
/ 31 августа 2011

Я получил решение для этого.

Переменная должна быть передана как Item("${category}"). Следовательно, мой запрос станет:

with set SelectedEntity as '{Union({[Category].[Tertiary Category].Members}, {[Category].[Secondary Category].Members}).Item("${category}")}'
    select Crossjoin({[Measures].[Reach]}, {[Age Group].[15-17], [Age Group].[18-24], [Age Group].[25-30], [Age Group].[31-35], [Age Group].[36-40], [Age Group].[40+]}) ON ROWS,
    {[SelectedEntity]} ON COLUMNS
    from [AppUsage]
    where {[Country].[India]}*{[Date].[2011].[April]}*{[Panel].[Syndicate]}

где ${category} - моя переменная.

...