Sql server 如何在MDX计算成员中传递多值参数?

Sql server 如何在MDX计算成员中传递多值参数?,sql-server,ssrs-2008,ssas,mdx,Sql Server,Ssrs 2008,Ssas,Mdx,我实际上正在使用SQL Server Reporting Services开发SSAS多维数据集。 为了过滤字段,我需要使用专门使用参数的计算成员 这是我的会员: WITH MEMBER [Measures].[Comparable Stock Room] AS Iif ( [Stock room].[Stock room code].currentMember IS (Iif (STRTOMEMBER(@StockRoomCode).Count = 1, STRTOMEMBER(@St

我实际上正在使用SQL Server Reporting Services开发SSAS多维数据集。 为了过滤字段,我需要使用专门使用参数的计算成员

这是我的会员:

WITH MEMBER [Measures].[Comparable Stock Room] AS Iif (
    [Stock room].[Stock room code].currentMember IS (Iif (STRTOMEMBER(@StockRoomCode).Count = 1, STRTOMEMBER(@StockRoomCode), xxx)),
    0,
    [Measures].[Retail sales amount invoiced including tax] 
)
如果@StockRoomCode只有一个值,那么这种方法很有效。但我不知道当参数有多个值时如何使其工作。如何替换“xxx”?
你能帮我吗?或者告诉我如何做得更好,谢谢

您可以创建一个计算成员,聚合要报告的成员,并在计算成员的TEM中定义度量值,例如:

with member [Stock Room].[Stock room code].[foo] as
aggregate (strtoset (@StockRoomCode)),

member [Measures].[Comparable Stock Room] as
([Stock Room].[Stock room code].[foo],
 [Measures].[Retail sales amount including tax])
(注:未经测试,仅在头顶)。或者


注意,使用这两种方法中的任何一种,都要正确设置集合表达式并首先进行测试。

您可以创建一个计算成员,将要报告的成员聚合在一起,并在计算成员的TEM中定义度量值,例如:

with member [Stock Room].[Stock room code].[foo] as
aggregate (strtoset (@StockRoomCode)),

member [Measures].[Comparable Stock Room] as
([Stock Room].[Stock room code].[foo],
 [Measures].[Retail sales amount including tax])
(注:未经测试,仅在头顶)。或者


请注意,无论使用哪种方法,都要正确设置表达式并首先进行测试。

谢谢您的帮助!我试过你说的,但没用。。。即使@StockRoomCode只有一个值,它也会对可比较的StockRoomCode列一直表示NULL。请尝试按部分构建它。首先获得正确的设置(stroset(@StockRoomCode)。当它开始让我生气时,我第一次尝试用部件来构建它…@StockRoomCode每次使用它都会说'NULL'。我找不到一种方法将值显示到列中…这太疯狂了,因为我在条件(Iif…)中使用它时,',它能够检索到正确的值…感谢您的帮助!我尝试了您所说的,但它不起作用…即使@StockRoomCode有一个值,它也会一直为列Compariable Stock Room显示NULL。尝试按部分构建它。获得正确的设置(stroset(@StockRoomCode)首先。当它开始让我恼火时,我第一次尝试用部件来构建它…@StockRoomCode每次使用它都会说“NULL”。我找不到一种方法将值显示到列中…这太疯狂了,因为“当我在条件(Iif…)中使用它时,它能够检索到正确的值…”。。。