Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reporting services SSRS mdx报告:传递多值参数时具有最大秩值的计算成员_Reporting Services_Parameters_Mdx_Olap_Member - Fatal编程技术网

Reporting services SSRS mdx报告:传递多值参数时具有最大秩值的计算成员

Reporting services SSRS mdx报告:传递多值参数时具有最大秩值的计算成员,reporting-services,parameters,mdx,olap,member,Reporting Services,Parameters,Mdx,Olap,Member,下面是对MS OLAP cube的一个简单mdx查询,该查询输出3个城市的销售步骤统计数据,每个销售阶段都有排名,效果良好: WITH MEMBER [Measures].[rank] AS case [Sales_step].currentmember.member_caption when 'Contacts' then 1 when 'Clients' then 2 when 'Funded' then 3 else

下面是对MS OLAP cube的一个简单mdx查询,该查询输出3个城市的销售步骤统计数据,每个销售阶段都有排名,效果良好:

WITH 
MEMBER [Measures].[rank] AS 

    case [Sales_step].currentmember.member_caption         
    when 'Contacts' then 1    
    when 'Clients' then 2
    when 'Funded' then 3 
    else 0 end

SELECT {[Measures].[rank],
        [Measures].[qnt]} ON COLUMNS,

NON EMPTY     
       crossjoin({[City].CHILDREN},                            
                 {[Sales_step].CHILDREN}) ON ROWS 

FROM ( SELECT ( STRTOSET(@[Sales_step], CONSTRAINED) ) ON COLUMNS  
FROM [SALES_PIPE])
输出为:

现在,我想为每个城市建立总计,不需要单独的销售步骤,但只显示最大存档销售阶段排名。结果必须是:

为此,我尝试了以下代码:

WITH 
MEMBER [Measures].[rank max] AS 

    case [Sales_step].currentmember.member_caption         
    when 'Contacts' then 1    
    when 'Clients' then 2
    when 'Funded' then 3 
    else 0 end

SELECT {[Measures].[rank max],
        [Measures].[qnt]} ON COLUMNS,

NON EMPTY [City].CHILDREN ON ROWS 

FROM ( SELECT ( STRTOSET(@[Sales_step], CONSTRAINED) ) ON COLUMNS  
FROM [SALES_PIPE])
它不会生成错误,但会为计算成员[Measures].[rank max]返回空值:

仅当我将一个值传递给@[Sales_step]参数时,它才起作用。而我需要一个多值参数运行。当我在case子句中更改此代码段时:

case [Sales_step].currentmember.member_caption 
致:

它抛出了一个错误“STRTOMEMBER函数要求1参数使用一个成员表达式。使用了一个元组集表达式”。当我也使用此参数时,一个和多个参数都会触发错误:

case strtoset(@[Sales_step]).currentmember.member_caption

我需要如何修改计算成员[Measures].[rank max]以获得通过@[Sales_step]多值参数的最大秩的期望结果

我想知道这样做是否有效:

WITH 
SET [S] AS
    NonEmpty(
       EXISTING [Sales_step].CHILDREN,
       ([City].CURRENTMEMBER, [Measures].[qnt])   //<<I think that [City].CURRENTMEMBER is probably redundant in this tuple
    )
MEMBER [Mx] AS   
    CASE         
      WHEN INTERSECT([S], {[Sales_step].[Funded]}).COUNT = 1 THEN 3 
      WHEN INTERSECT([S], {[Sales_step].[Clients]}).COUNT = 1 THEN 2 
      WHEN INTERSECT([S], {[Sales_step].[Contacts]}).COUNT = 1 THEN 1
    END 
...
...
与
将[S]设置为
非空(
现有[Sales_step]。子项,

([City].CURRENTMEMBER[Measures].[qnt])//在列上尝试:
FROM(SELECT(stroset(@Sales\u step,constrated))
我不确定您的语法@[Sales\u step]。这现在是空的
[Sales\u step]。CURRENTMEMBER
…在您的第二次查询中,此层次结构没有
CURRENTMEMBER
.CHILDREN
出于脚本的考虑Whytheq有效!这正是我想要的。注意:是的,[City]。正如您所指出的,[s]集中的currentmember可以省略。它不会损坏result@SouravA干杯,伙计-谢谢!(你在看比赛吗?…如果是,祝你好运!)@whytheq-哦,是的,先生!决赛见;)
WITH 
SET [S] AS
    NonEmpty(
       EXISTING [Sales_step].CHILDREN,
       ([City].CURRENTMEMBER, [Measures].[qnt])   //<<I think that [City].CURRENTMEMBER is probably redundant in this tuple
    )
MEMBER [Mx] AS   
    CASE         
      WHEN INTERSECT([S], {[Sales_step].[Funded]}).COUNT = 1 THEN 3 
      WHEN INTERSECT([S], {[Sales_step].[Clients]}).COUNT = 1 THEN 2 
      WHEN INTERSECT([S], {[Sales_step].[Contacts]}).COUNT = 1 THEN 1
    END 
...
...