합계 및 기타 집계 계산(Reporting Services)
테이블릭스 데이터 영역에서는 보고서 데이터 집합, 데이터 영역 또는 그룹의 집계 합계를 표시할 수 있습니다. 합계 추가 명령에서 제공하는 기본 집계를 사용하고 기본 범위를 사용할 수 있으며, 기본 제공 함수와 다른 집계 함수를 지정하거나 다른 범위를 지정할 수도 있습니다.
집계 계산을 사용자 지정하려면 그룹 변수를 사용자 지정 코드와 함께 사용합니다. 자세한 내용은 사용자 지정 집계를 위해 Reporting Services 2008의 그룹 변수 사용(Using Group Variables in Reporting Services 2008 for Custom Aggregation)을 참조하십시오.
범위에 대한 자세한 내용은 msdn.microsoft.com의 보고서 작성기 3.0 설명서에서 합계, 집계 및 기본 제공 컬렉션의 식 범위 이해(보고서 작성기 3.0)를 참조하십시오.
합계 추가 명령 이해
테이블릭스 데이터 영역 총합계 및 그룹 부분합을 표시하려면 합계 추가 바로 가기 명령을 사용합니다. 합계 추가 명령은 대/소문자를 구분합니다. 셀이 행 그룹 영역에 있는 경우 합계 추가 명령은 자동으로 그룹 외부의 행을 더하여 합계를 구합니다. 셀이 열 그룹 영역에 있는 경우 합계 추가 명령은 자동으로 그룹 외부의 열을 더하여 합계를 구합니다. 셀이 숫자 필드 식이 포함된 본문 영역에 있는 경우 합계 추가 명령을 사용하면 합계를 행에 더할지 열에 더할지 여부를 선택할 수 있습니다. 합계 추가 명령 사용 방법은 방법: 그룹 또는 테이블릭스 데이터 영역에 합계 추가(Reporting Services)를 참조하십시오.
기본적으로 합계 추가 명령은 Sum 함수를 사용합니다. 하지만 Sum 함수를 다른 기본 제공 함수로 변경하여 범위에 대해 다른 집계를 수행할 수 있습니다. 또한 식을 직접 작성하여 다른 범위에 상대적인 범위의 집계 값을 계산할 수도 있습니다. 예를 들어 전체 데이터 집합에 상대적인 그룹 값의 백분율을 계산할 수 있습니다. 다른 기본 제공 함수를 사용하여 집계를 수행하는 방법은 식에서 기본 제공 보고서 및 집계 함수 사용(Reporting Services)을 참조하십시오. 기본 제공 함수 목록은 식에서 기본 제공 보고서 및 집계 함수 사용(Reporting Services)을 참조하십시오.
기본 범위 이해
테이블릭스 데이터 영역이 처리되고 렌더링될 때 보고서 디자이너는 각 테이블릭스 셀의 값을 셀 범위의 컨텍스트에서 평가합니다. 셀이 행 그룹 또는 열 그룹과 연결된 행에 있는 경우 셀은 여러 그룹에 속할 수 있습니다. 셀이 속하는 그룹 집합, 데이터 영역 또는 식을 평가할 데이터 집합을 범위라고 합니다. 기본 범위는 셀이 속하는 가장 안쪽 행 및 열 그룹으로 정의됩니다. 선택한 셀이 속한 그룹은 시각적인 표시를 통해 확인할 수 있습니다. 자세한 내용은 테이블릭스 데이터 영역 셀, 행 및 열 이해를 참조하십시오.
기본 범위에 대한 예를 보여 주는 다음 그림에는 날짜를 기반으로 하는 부모 행 그룹, 주문을 기반으로 하는 자식 행 그룹 및 세부 정보 그룹이 있습니다.
이 그림은 다중 행의 테이블릭스 본문 셀에 나타나는 Qty 및 LineTotal에 대한 필드 식을 보여 줍니다. 아래에서는 각 행에서 이 필드 식에 대한 기본 범위가 어떻게 지정되는지 설명합니다.
행 1. 이 행에는 정적 텍스트인 열 레이블이 표시됩니다. 기본 범위는 데이터 영역입니다. 행은 한 번만 반복되며 이를 머리글 행이라고도 합니다.
행 2. 이 행에는 세부 정보에 대한 행 핸들()로 표시되는 세부 데이터가 표시됩니다. [Qty]의 기본 범위는 세부 정보 그룹으로, 모든 데이터 집합, 데이터 영역 및 그룹 필터가 적용된 후 이 데이터 영역에 바인딩되는 데이터 집합의 데이터입니다. 이 행은 데이터 집합 쿼리 결과 집합의 각 행마다 반복됩니다. 값 [Qty]는 데이터 집합의 세부 데이터를 표시합니다.
행 3. 이 행은 집계 값을 표시합니다. [Sum(Qty)]의 기본 범위는 자식 행 그룹인 Order입니다. 행은 고유한 주문 번호 값마다 한 번씩 반복됩니다. 값 [Sum(Qty)]은 각 주문 번호에 대한 집계 합계를 표시합니다.
행 4. 이 행은 집계 값을 표시합니다. [Sum(Qty)]의 기본 범위는 부모 행 그룹인 Date입니다. 행은 고유한 날짜 값마다 한 번씩 반복됩니다. 값 [Sum(Qty)]은 각 날짜에 대한 집계 합계를 표시합니다.
행 5. 이 행은 집계 값을 표시합니다. [Sum(Qty)]의 기본 범위는 데이터 영역입니다. 행은 한 번만 반복되며 이를 바닥글 행이라고도 합니다. 값 [Sum(Qty)]은 날짜 영역에 대한 집계 합계를 표시합니다.
컨텍스트 및 범위에 대한 자세한 내용은 식에서 기본 제공 보고서 및 집계 함수 사용(Reporting Services)을 참조하십시오. 테이블릭스 데이터 영역에 나타나는 시각적 표시의 의미에 대한 자세한 내용은 테이블릭스 데이터 영역 셀, 행 및 열 이해를 참조하십시오.
명명된 범위로 집계 계산 지정
기본 범위 이외의 범위를 지정하려면 명명된 범위를 지정합니다. 명명된 범위에는 데이터 집합, 데이터 영역 또는 그룹의 이름이 포함됩니다. 식의 대/소문자가 구분되므로, 기본 제공 함수에 대해 유효한 명명된 범위를 지정해야 합니다. 각각의 기본 제공 함수는 매개 변수로 유효한 범위를 지정합니다. 자세한 내용은 식에서 기본 제공 보고서 및 집계 함수 사용(Reporting Services)에서 해당되는 함수 참조 항목을 참조하십시오.
기본 범위를 명명된 범위로 변경하는 예제로, 데이터 구조가 다음과 같은 보고서를 가정해 보겠습니다.
이름이 Sales인 보고서 데이터 집합
이름이 Tablix1이며 다음과 같은 그룹을 포함하는 테이블 데이터 영역
Subcat이라는 자식 그룹이 있는 Category라는 이름의 부모 행 그룹
CountryRegion이라는 자식 그룹이 있는 Geography라는 이름의 부모 열 그룹
이 보고서에 합계 추가 명령을 사용하여 여러 셀에 합계를 추가합니다. 그러면 다음 그림과 비슷한 보고서가 생성됩니다.
이 그림에서는 셀 중 하나가 선택되었습니다. 이 선택된 셀에서 주황색 그룹 표시 대괄호는 가장 안쪽 그룹 멤버 자격, 즉 Category 그룹과 CountryRegion 그룹을 나타냅니다. 이 가장 안쪽 그룹 멤버 자격은 이 셀의 기본 범위를 정의합니다. 선택된 셀의 경우에는 Subcat 행 그룹과 Geography 열 그룹을 나타내는 두 개의 회색 그룹 대괄호도 있습니다. 회색 그룹 대괄호로 표시된 그룹은 선택한 내부 그룹의 외부 그룹이거나 선택한 셀의 범위에 있지 않은 그룹입니다.
이러한 선택한 셀에는 식 이 있습니다. [Sum(LineTotal)]. 렌더링된 보고서에서는 셀의 범위와 식을 기반으로, 입력란의 값을 각 CountryRegion 값 내의 각 Subcat 값에 대한 [LineTotal] 합계로 표시합니다.
다음 방법을 사용하면 식의 Sum 함수를 바꾸지 않고 이 셀의 범위를 변경할 수 있습니다.
범위를 Sales 데이터 집합으로 변경합니다. 예를 들어 데이터 집합 합계를 지정하려면 식을 =Sum(Fields!LineTotal.Value, "Sales")으로 변경할 수 있습니다.
범위를 전체 Tablix1 데이터 영역으로 변경합니다. 예를 들어 그룹이 합계 데이터 영역에 기여하는 백분율을 계산하려면 식을 =Sum(Fields!LineTotal.Value)/Sum((Fields! LineTotal.Value),"Tablix1")으로 변경할 수 있습니다.
이 새 식에서 분자 Sum(Fields! LineTotal.Value)은 각 범주에 대한 품목 합계의 합입니다. 분모인 Sum((Fields! LineTotal.Value), "Tablix1")은 데이터 영역에 대한 품목 합계의 합입니다. 그 결과는 각 범주가 합계 데이터 영역에서 차지하는 백분율입니다.
선택한 셀에서 Sum 함수에 대해 CountryRegion, Geography 또는 Category 그룹 범위 중 하나를 지정할 수 있습니다. 셀이 Subcat 그룹과 연결된 행에 있지 않기 때문에 그룹 범위 Subcat은 지정할 수 없습니다.
참고
집계 함수에 대해 하나의 범위만 지정할 수 있습니다. 분모 식의 범위로 "Category"와 "Geography"를 동시에 지정할 수 없습니다. 여러 범위를 지정하는 것은 지원되지 않습니다.
기본 제공 함수 목록은 식에서 기본 제공 보고서 및 집계 함수 사용(Reporting Services)을 참조하십시오.
여러 범위 지정의 예
다음 표에서는 기본 범위, 데이터 영역 범위 및 데이터 집합 범위를 사용하는 식의 예를 보여 줍니다. 이 예에서는 "Tablix1"이라는 테이블릭스 데이터 영역, 판매 주문의 품목에 대한 합계가 포함된 "LineTotal"이라는 필드가 있는 "Sales"라는 데이터 집합이 있는 것으로 가정합니다.
설명 |
식 |
---|---|
현재 범위에 대한 품목 합계의 합입니다. |
=Sum(Field!LineTotal.Value) |
(현재 범위에 대한 품목 합계의 합)/(데이터 영역의 품목 합계의 합)의 백분율입니다. 입력란의 기본 표시 형식에 따라 이 값의 형식이 지정됩니다. |
=Sum(Field!LineTotal.Value)/Sum(Field!LineTotal.Value,"Tablix1") |
그룹 CountryRegion과 연결된 행에 배치되는 경우: (CountryRegion 그룹에 대한 품목 항목 합계의 합)/(Geography 그룹에 대한 품목 합계의 합)의 백분율입니다. 입력란의 기본 표시 형식에 따라 이 값의 형식이 지정됩니다(형식 #.#%에 대해 P1로 설정되어야 함). |
=Sum(Field!LineTotal.Value)/Sum(Field!LineTotal.Value,"Geography") |
(현재 범위에 대한 품목 합계의 합)/(데이터 영역에 대한 품목 합계의 합)의 백분율입니다. 현재 그룹에 품목 합계가 없으면 결과가 공백이 되도록 IIF를 사용하여 값의 형식이 지정됩니다. |
=IIF(Sum(Field!LineTotal.Value)<=0,"", FormatPercent(Sum(Field!LineTotal.Value)/Sum(Field!LineTotal.Value,"Tablix1"),1) |
(현재 범위에 대한 품목 합계의 합)/(데이터 집합에 대한 품목 합계의 합)의 백분율입니다. 소수 첫째 자리까지 지정하는 FormatPercent를 사용하여 값의 형식이 지정됩니다. |
="Percentage contributing to all sales: " & FormatPercent(Sum(Field!LineTotal.Value)/Sum(Field!LineTotal.Value,"Sales"),1) |
셀에 Null 또는 0 값 표시하지 않기
많은 보고서의 범위가 그룹인 계산에서 0 또는 Null 값이 있는 셀이 여러 개 생성됩니다. 이러한 경우 보고서를 좀 더 단순하게 하려면 집계 값이 0인 경우 공백을 반환하는 식을 추가할 수 있습니다. 자세한 내용은 식 예(Reporting Services)에서 "Null 또는 0 값을 표시하지 않는 예"를 참조하십시오.