2011-08-29 37 views
0

我有我的MDX查詢如下: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")

我需要知道如何在我的mondrian MDX查詢中將此變量作爲字符串傳遞。

+0

您使用哪種報告工具? MDX參數的語法是@category –

+0

我在Pentaho中使用了Mondrian for MDX – srahul07

+0

我按照您的建議做了,但無法成功。我收到了同樣的錯誤。此外,我在日誌中發現:「父例外:Mondrian錯誤:無法解析查詢」。它指定它仍然無法解析它。 – srahul07

回答

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}是我的變量。

相關問題