属性列表的字符串列表

时间:2011-12-19 11:08:10

标签: sql-server reporting-services

我有一个基于MDX查询的报告:

SELECT {[Measures].[IssueOpened] } ON COLUMNS,
       {(  STRTOSET("[Assigned To].[Id].[Some],[Assigned To].[Id].[Another]") * 
         [Priorities].[Id].[Id].ALLMEMBERS ) } ON ROWS
FROM (SELECT (STRTOSET(@createdOn) ) ON COLUMNS
     FROM [Reports])

我想更改静态字符串“[Assigned To]。[Id]。[Some]:[Assigned To]。[Id]。[Another]” to parameter:

SELECT {[Measures].[IssueOpened] } ON COLUMNS,
       {(  STRTOSET(@assignedTo) * 
         [Priorities].[Id].[Id].ALLMEMBERS ) } ON ROWS
FROM (SELECT (STRTOSET(@createdOn) ) ON COLUMNS
     FROM [Reports])

我创建了参数,但此参数的可用值是关系数据集(不是MDX维度)。 允许多个值设置为

如何将参数值转换为属性列表:“[Assigned To]。[Id]。[Some],[Assigned To]。[Id]。[Another]”

2 个答案:

答案 0 :(得分:1)

一种方法是为分析服务创建CLR存储过程,它将为您完成,因此它将为您构建SET。你可以在谷歌上找到一些例子。 (即http://andrewdenhertog.com/analysis-services/clr-stored-procedures-in-sql-server-analysis-services-ssas/

答案 1 :(得分:0)

如果这些来自关系数据源,我只是以MDX期望参数值属性的格式对它们进行编码,例如:

参数标签:有些
参数值:[已分配给]。[Id]。[Some]

有些时候,这很容易在TSQL中创建。有时,如果需要支持动态层次结构,则需要对表达式进行一些小的修改。角色扮演维度就是一个例子。基本概念虽然相似。