Calculate totals from group totals in Reporting Services

I have some data grouped into a table according to certain criteria, and for each group the average value is calculated - well, the real case is a bit more complicated - from the values ​​from each of the details lines belonging to this group. This average value is displayed in each row of the group footer. Consider this simple example:

Report table

Now I want to show the total amount in the footer . The total amount should be calculated by adding each middle group (for example, in this example, the total amount should be 20 + 15 = 35). However, I cannot nest aggregated functions. How can i do

+3
source share
5 answers

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()".

+2

SUM() , , . , .

+3

, , :
= ( (! 1 + (! 2))

= SUM ( (! 1) + (! 2))

, 2.

+1
source
+1
source

you can simply do the following: Sum (CInt (Fields! TestValue.Value)) or Sum (CInt (fields! DollarAmountOfCheck.Value), "DataSet1") when data comes in through WCF, it does not accept Sum (). but in this case it works great.

+1
source

Source: https://habr.com/ru/post/1698412/


All Articles