SSRS - 从sum中排除隐藏值 - 没有SQL要使用ROW_NUMBER()

时间:2017-06-09 15:05:40

标签: reporting-services sum hidden-field

希望使用可以帮助我:

我的数据集使用预先构建的模块,因此我无法使用SQL为该字段添加row_number()。

我需要能够从SUM中排除隐藏值,如下所示:

  1. 在字段中,我使用了这个表达式:
    IIF(Fields!SpaceID.Value = Previous(Fields!SpaceID.Value), 0, Fields!SpaceArea.Value)

  2. 在SpaceArea的Textbox属性中 - >可见性 - >显示或隐藏字段,我也使用此表达式隐藏: =IIF(Fields!SpaceID.Value = Previous(Fields!SpaceID.Value),True, False)

  3. 和SUM:
    =Sum(IIF(Fields!SpaceID.Value = Previous(Fields!SpaceID.Value), Fields!SpaceArea.Value, Nothing))

  4. 然后我收到此错误消息:

      

    以前的函数不能指定为嵌套聚合。

    非常感谢您提前

    编辑1:

         SpaceID    SpaceArea   RowNumber 
         A          123         1
         A          123         2
         A          123         3
         B          12          1
         B          12          2
         C          1           1
    

    注意:

    1. SpaceID被分组为SpaceID_Group
    2. SpaceArea = (123 + 12 +1)的预期总和。
    3. 无法使用row_number() over (partition by ... ),因为没有SQL。该查询是使用XML而不是SQL设计的。
    4. 我设法在Tablix中创建了另一列,其中行值为
       =RowNumber("SpaceID_Group")
      但我不知道如何将它提交给我的Sum。如果我有SQL,它看起来像:
      sum(iif(Fields!RowNumber.Value = 1, Fields!SpaceArea.Value, Nothing))

1 个答案:

答案 0 :(得分:1)

  1. 将以下自定义代码添加到报告中(返回值用于调试)
  2. Public Shared MyTotal As Integer Function AddTotal(ByVal t As Integer) As Integer MyTotal = MyTotal + t Return Mytotal End Function

    1. SpaceId上的小组(正如您已经做过的那样)并隐藏它。

    2. 将表达式Code.AddTotal(Fields!SpaceArea.Value)添加到SpaceId组

    3. 将表达式Code.MyTotal添加到字段摘要中。 在某些版本(如SSRS 2005)中,由于执行顺序,您可能会注意到计算返回零。在这种情况下,添加一个带有表格

    4. 的表达式的字段

      enter image description here

      enter image description here

相关问题