2011-10-24 4 views
4

이것은 단어로 설명하기가 어렵습니다 ... 매트릭스에서 그룹화 된 고유 값의 합을 계산하려고합니다. SQL 쿼리에서 다음 데이터를 반환했다고 가정 해 봅시다.그룹화 된 고유 값의 합

------------------------------------------------ 
| Group | ParentID | ChildID | ParentProdCount | 
|  A |  1 |  1 |    2 | 
|  A |  1 |  2 |    2 | 
|  A |  1 |  3 |    2 | 
|  A |  1 |  4 |    2 | 
|  A |  2 |  5 |    3 | 
|  A |  2 |  6 |    3 | 
|  A |  2 |  7 |    3 | 
|  A |  2 |  8 |    3 | 
|  B |  3 |  9 |    1 | 
|  B |  3 |  10 |    1 | 
|  B |  3 |  11 |    1 | 
------------------------------------------------ 

쿼리에 다른 데이터가 있지만 관련이 없습니다. ParentProdCount는 ParentID에만 해당됩니다.

이제 MS Report Designer에서 "ParentProdCount"(그룹별로 그룹화)의 합계를 계산하려고하는 매트릭스가 있습니다. 방금 식을 추가하면

=Sum(Fields!ParentProdCount.Value) 

결과가 20 그룹 A에 대해, 그룹 B에 3이 올바르지 않습니다. 올바른 값은 그룹 A에 대해 5이고 그룹 B에 대해 1이어야합니다. ChildID가 관련되지 않은 경우에는 발생하지 않지만 동일한 행렬에서 다른 하위 관련 데이터를 사용해야합니다.

FIRST() 및 SUM() 집계 함수를 중첩하려했지만 스코프가 정의되어 있어도 중첩 집계 함수를 가질 수없는 것 같습니다.

다른 SQL 쿼리를 만들 필요없이 그룹화 된 고유 합계를 계산할 수있는 방법이 있습니다. 누구든지 그 일을하는 법을 알아 냈습니까?

SELECT Group, ParentID, ROW_NUMBER() OVER (PARTITION BY ParentID ORDER BY ChildID ASC) AS Position, ChildID, ParentProdCount FROM Table 

후 나는 ParentID 통해 그룹을 넣어

=SUM(IIF(Position = 1, ParentProdCount.Value, 0)) 

답변

8

가 좋아 나는이() 내 SQL 쿼리를 작동 ROW_NUMBER을 추가하여 분류되었다 그리고, 그 그룹을 통해 요약을 사용

예 :

if group over ParentID = "ParentIDGroup" 
then 
    column sum of ParentPrdCount = SUM(Fields!ParentProdCount.Value,"ParentIDGroup") 
+1

이 문제가있는 사람은 십진수를 합산하여이 오류가 발생했습니다. "처음, 마지막, 이전, 개수 및 CountDistinct 이외의 집계 함수는 단일 데이터 형식의 데이터 만 집계 할 수 있습니다." Sum 함수의 Nothing으로 0을 대체하여 작동하도록했습니다. – Rono

0

으로 SSRS SUM 함수를 대체 :

관련 문제