MDX将变量作为字符串传递给Item()

时间:2011-08-29 14:30:33

标签: variables mdx mondrian

我的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()中传递变量的正确方法,因为它需要字符串。

注意:{I}我在传递给上述查询后自动完成字段中选择实体后得到的${category}变量值

修改

当我在查询中为类别变量传递值“电子邮件”时,即在上面Item(${category})中,在日志中,相同的查询变为Item(Emails)。但不是这样,它应该是这样的:Item("Emails")

我需要知道如何在我的mondrian MDX查询中将此变量作为字符串传递。

1 个答案:

答案 0 :(得分:0)

我得到了解决方案。

变量需要作为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}是我的变量。