2014-01-29 6 views
0

년, 월, 제품 및 시도 횟수와 성공 시도 횟수가있는 테이블이 있습니다.SSRS 중첩 그룹의 합

데이터는 연도, 월, 그 다음 제품별로 그룹화됩니다.

제품별로 % 성공 (성공/시도)을 추가 한 다음 월별로, 그 다음 연도별로 그룹화해야합니다.

전 한 필드에서 연월이 있습니다. 그래서 Sum (success.value, "period")/Sum (시도 횟수, "period")을 사용하여이 작업을 수행 할 수있었습니다.

그러나 중첩 된 그룹이있는 경우 어떻게합니까?

"재귀 적"매개 변수를 추가하는 방법을 보았지만 아직 작동하지는 못했습니다.

+0

'기간'은 데이터 집합의 이름입니까? 몇 줄의 샘플 데이터와 원하는 결과를 추가 할 수 있습니까? 'Sum (success.value)/Sum (attempts.value)'또는'Sum (success.value, "GroupName")/Sum (시도. 값, "GroupName")'을 사용하면 어떻게됩니까? 첫 번째 기능은 범위와 상관없이 실행됩니다.다른 그룹 및 두 번째 그룹은 명시 적으로 그룹 범위에서 실행됩니다. –

+0

Sum (success.value)/Sum (attempts.value)을 사용하면 마지막 요약 행과 마찬가지로 그룹 요약에 대해 동일한 값을 표시합니다. 월이 연도의 하위 그룹 인 경우 "GroupName"을 "Months"로 대체합니까? 그렇다면 2013 년 1 월에서 2014 년 1 월 사이에 혼란 스러울 것입니까? 아니면 "년"내에서 "월"을 어떻게 사용해야합니까? – user2708232

답변

0

집계는 현재 수준의 범위 내에서 암시 적으로 발생합니다. 일반적으로 =SUM(Fields!Amount.Value)이 필요하며 Reporting Services는 집계를 자동으로 처리합니다. - 작동 서비스를보고 귀하의 경우에는

Year Month Product Aggregation 
2013      Sums all products for all months for 2013 
     January    Sums all products for January 2013 
       Widget  Sums all Widgets for January 2013 
       Gadget  Sums all Gadgets for January 2013 
     February   Sums all products for February 2013 
       Widget  Sums all Widgets for February 2013 
       Gadget  Sums all Gadgets for February 2013 
2014      Sums all products for all months for 2014 
     January    Sums all products for January 2014 
       Widget  Sums all Widgets for January 2014 
       Gadget  Sums all Gadgets for January 2014 
     February   Sums all products for February 2014 
       Widget  Sums all Widgets for February 2014 
       Gadget  Sums all Gadgets for February 2014 

암시 집계가 중첩의 양에 관계없이 잘 작동합니다 : 다음 그룹이있는 경우

, 여기에 그냥 =SUM(Fields!Amount.Value)를 사용하는 경우 집계가 암시 적으로 작동하는 방법이다 당신을 위해 모든 것을 다 가져 왔습니다. 따라서이 표현은 그룹의 모든 수준에서 작동합니다 :

=Sum(Fields!Success.Value)/Sum(Fields!Attempts.Value) 

SUM는 암시 적으로 그룹화의 현재 수준의 범위 내에서 수행됩니다. 이런 일이 일어나지 않으면 그룹화가 제대로 작동하지 않는 것일 수 있습니다. 그룹 속성을 살펴보고 그 그룹의 수준이 실제로 그룹화되어 있는지 확인하십시오. 외부 그룹은 Year, 다음 그룹 Month 및 최종 가장 안쪽 그룹 Product 여야합니다.

이 필드는 모든 January을 함께 그룹화하지 않으며, 해당 필드가 변경되면 이전 그룹의 그룹 바닥 글과 다음 그룹의 그룹 머리글을 인쇄해야 함을 나타냅니다. 2013 년 1 월이 2 월으로 변경되면 그룹 변경이 발생하고 1 월이 2014 년 2 월으로 변경 될 때와 유사하게 발생합니다. 1 월과 다른, 올해 상위 그룹의 범위 내에 있습니다.

SQL 문에서 ORDER BY [Year], [Month], [Product]을 사용하거나 테이블 릭스에서 정렬을 구현하여 그룹화에 필요한 순서대로 데이터를 유지해야합니다. 그렇지 않으면 필드가 올바른 순서가 아니며 그룹 변경 사항은 필드가 임의의 순서이므로 계속 트리거됩니다.

현재 범위 외부에서 집계하는 경우에만 범위를 명시 적으로 정의하면됩니다. 예를 들어 각 행이 데이터 집합의 합계에 해당하는 비율을 추가하려면 데이터 집합을 집계 범위로 명시 적으로 사용해야하므로 내 세부 행에이 계산을 사용합니다.

=SUM(Fields!Amount.Value)/SUM(Fields!Amount.Value, "MyDataset") 

recursive parameter은 계층 적 데이터가있는 테이블, 즉 직원의 조직도와 같은 상위/하위 관계에만 사용됩니다.

+0

Chris에게 답해 주셔서 감사합니다. 나는 이것을 시험해보고 알려 줄거야. – user2708232