2011-12-16 2 views
1

У меня есть перекрестное соединение, которое выглядит как этотMDX - Использование IIF, чтобы повлиять на наборы в перекрестном соединении

SELECT 
    {[Measures].[Respondent Count]} ON COLUMNS 
,{ 
     [Groups In Rows].[Group].ALLMEMBERS* 
     [Questions In Rows].[By ShortCode].[Option].ALLMEMBERS* 
     [Questions In Columns].[By ShortCode].[Option].ALLMEMBERS 
    } ON ROWS 
FROM [cube] 

Я хочу, чтобы иметь возможность динамически удалить перекрестное соединение на группы В строках в соответствии с параметром, так что в псевдо mdx у нас было бы

SELECT 
    {[Measures].[Respondent Count]} ON COLUMNS 
, 
IIF(@UseGroups = "yes", 
{  [Groups In Rows].[Group].ALLMEMBERS* 
     [Questions In Rows].[By ShortCode].[Option].ALLMEMBERS* 
     [Questions In Columns].[By ShortCode].[Option].ALLMEMBERS 
    }, 
{ 
     [Questions In Rows].[By ShortCode].[Option].ALLMEMBERS* 
     [Questions In Columns].[By ShortCode].[Option].ALLMEMBERS 
} ON ROWS 
FROM [Cube] 

Возможно ли это как можно?

ответ

0

Поскольку вы используете нотацию @UseGroups, я предполагаю, что вы ссылаетесь на параметр Reporting Services.

Вы можете использовать выражение для запроса, и построить запрос в отношении параметра:

="SELECT { [Measures].[Respondent Count] } ON COLUMNS, " 
&"  { " 
& Iif(@UseGroups = "yes", 
     "[Groups In Rows].[Group].ALLMEMBERS*", 
     "[Groups In Rows].[Group].All") 
&"   [Questions In Rows].[By ShortCode].[Option].ALLMEMBERS* " 
&"   [Questions In Columns].[By ShortCode].[Option].ALLMEMBERS " 
&"  } ON ROWS " 
&" FROM [Cube]" 

Вы должны включить весь элемент для ложной ветви функции Iif, из-за проблемы с метаданными ,

Смежные вопросы