문제

특정 기준에 따라 테이블에 일부 데이터가 그룹화되어 있으며 각 그룹의 경우 평균 (실제 사례는 조금 더 까다 롭습니다. 해당 그룹에 속하는 각 세부 행의 값 중 일부가 더 까다 롭습니다. 이 평균은 각 그룹 바닥 글수에 표시됩니다. 이 간단한 예를 보자 :

Report table

지금 내가 원하는 것은 테이블 바닥 글. 그랜드 총계는 계산해야합니다 첨가 각 그룹의 평균 (예 :이 예에서는 총계는 20 + 15 = 35 여야합니다). 그러나 집계 기능을 중첩 할 수는 없습니다. 어떻게 할 수 있습니까?

도움이 되었습니까?

해결책

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

예를 들어 DoubleAgggreator의 이름을 지정하십시오. 그런 다음 그룹 표현식을 "code.doubleAggregator.aggregate (avg (fields! collect2.value))"로 바꾸고 "Code.DoubleAggregator.sum ()"로 총 표현식을 바꾸십시오.

다른 팁

두 그룹의 외부 범위 인 테이블 바닥 글에 sum () 함수를 추가하면 모두 함께 합산해야합니다. 조건에서 합산하는 경우,이를 거기에 넣어야 할 수도 있습니다.

불행히도 나는 현재보고 개발 상자에서 멀리 떨어져 있지만 그것은 다음과 같습니다.
= (합
또는
= sum (sum (fields! column1) + sum (fields! column2)))

나는 그것이 2 중 첫 번째라고 확신합니다.

당신은 실제로 할 수는 없지만 속임수를 쓸 수 있습니다. 나는 이것에 대한 해결책을 여기에 뿌렸다.http://dataqueen.unlimitedviz.com/2011/05/ssrs-aggregate-rast-ytd- 또는-last-child-value-in-an-ssas-query/

sum (cint (fields! testValue.value)) 또는 sum (cint (fields! dollaramountofcheck.value), "dataSet1")가 WCF를 통과 할 때 SUM () 함수를 허용하지 않습니다. . 그러나 이것은이 경우 잘 작동합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top