Службы Reporting Services (2005, а может и 2008 год) не поддерживают агрегаты агрегатов напрямую.
Используйте пользовательскую сборку отчета, ссылки на код и именованные объекты (Свойства отчета, Ссылки), которые позволяют самостоятельно агрегировать значения.
Ваш код может выглядеть так:
Public Sub New()
m_valueTable = New DataTable(tableName:="DoubleValueList")
'Type reference to System.Double
Dim doubleType = Type.GetType(typeName:="System.Double")
' Add a single Double column to hold values
m_valueTable.Columns.Add(columnName:="Value", type:=doubleType)
' Add aggregation column
m_sumColumn = m_valueTable.Columns.Add(columnName:="Sum", type:=doubleType, expression:="Sum(Value)")
End Sub
Public Function Aggregate(ByVal value As Double) As Double
' Appends a row using a 1-element object array.
' If there will be more than 1 column, more values need to be supplied respectively.
m_valueTable.Rows.Add(value)
Aggregate = value
End Function
Public ReadOnly Property Sum() As Double
Get
If 0 = m_valueTable.Rows.Count Then
Sum = 0
Else
Sum = CDbl(m_valueTable.Rows(0)(m_sumColumn))
End If
End Get
End Property
Имя, на которое вы ссылаетесь, например, DoubleAggregator. Затем замените групповые выражения на «Code.DoubleAggregator.Aggregate (Avg (Fields! Column2.Value))», а выражение для Total на «Code.DoubleAggregator.Sum ()».