Reporting services 有条件的Reporting Services组

Reporting services 有条件的Reporting Services组,reporting-services,microsoft-reporting,Reporting Services,Microsoft Reporting,我有以下数据来源: 首先我想按“名称”分组(我已经做了这部分),然后我想创建“类别”列,如果“名称”组有任何行type1=a,那么类别是“X”else category=“Z” 这就是我想要的结果: 如何在reporting services中获取“类别组”列?我的实际方法是编辑提供报告的SQL查询,并添加逻辑以在其中添加组。我假设这是不可能的,或者您没有访问SQL层的权限,所以这里有一种完全在SSRS中实现的方法: 在名称组的右侧插入另一列 对于字段表达式,对“名称”字段值执行a,并检查结

我有以下数据来源:

首先我想按“名称”分组(我已经做了这部分),然后我想创建“类别”列,如果“名称”组有任何行type1=a,那么类别是“X”else category=“Z”

这就是我想要的结果:


如何在reporting services中获取“类别组”列?

我的实际方法是编辑提供报告的SQL查询,并添加逻辑以在其中添加组。我假设这是不可能的,或者您没有访问SQL层的权限,所以这里有一种完全在SSRS中实现的方法:

  • 名称
    组的右侧插入另一列
  • 对于字段表达式,对“名称”字段值执行a,并检查结果中是否存在a

    =IIF(Array.IndexOf(Lookupset(Fields!Name.Value,Fields!Name.Value,Fields!Type1.Value,“DatasetName”),A)>-1,“X”,“Z”)

  • 如果您构建表达式piece Dine,请使用以下表达式首先检查LookUnder是否正常工作:

    =JOIN(LookupSet(...), ",")
    

    然后添加
    IIF(Array.IndexOf(…,A)>-1,X,Z)
    以查看返回的数组是否包含您的“A”值。

    我的实际方法是编辑提供报告的SQL查询,并添加将组添加到其中的逻辑。我假设这是不可能的,或者您没有访问SQL层的权限,所以这里有一种完全在SSRS中实现的方法:

  • 名称
    组的右侧插入另一列
  • 对于字段表达式,对“名称”字段值执行a,并检查结果中是否存在a

    =IIF(Array.IndexOf(Lookupset(Fields!Name.Value,Fields!Name.Value,Fields!Type1.Value,“DatasetName”),A)>-1,“X”,“Z”)

  • 如果您构建表达式piece Dine,请使用以下表达式首先检查LookUnder是否正常工作:

    =JOIN(LookupSet(...), ",")
    
    然后添加
    IIF(Array.IndexOf(…,A)>-1,X,Z)
    以查看返回的数组是否包含“A”值