2012-02-15 2 views
0

시스템 알람을 나타내는 모든 통계 데이터를 포함하는 보고서가 있습니다.SSRS 2008 그룹 변수 - 그룹 내의 항목 수를 계산합니다.

사용자가 선택한 기간의 모든 통계를 철회하여 드릴 다운 스타일 보고서를 만든 다음 그룹화 할 항목이있을 수 있도록 경보 코드에 그룹을 추가했습니다.

내가 원하는 것은 codeId에 의해이 그룹 내의 항목 수를 계산하는 것입니다. 카운트를 전체 그룹 헤더를 구성하는 연결 문자열의 일부로 사용할 계획입니다. 기본적으로 '알람 코드 # {codeId} - {설명} - 총계 : {총계}'라고 말합니다.

내 문제는 내 쿼리에서 계산을 수행 한 다음 보고서를 조회하기 전에 데이터를 미리 그룹화해야한다는 것입니다. 그리고 그렇게하면 그룹 확장을위한 세부 데이터가 없습니다. 요약 및 세부 데이터 집합을 실행하는 것이 내 머리를 약간 넘으나 살펴 봐야 할 옵션이 있습니다.

그래서 그룹 변수를 사용하여 그룹에 포함 된 항목 수를 계산할 수 있기를 바랍니다. 누구든지 저에게 그것을 풀어 내려고 시도하는 거친 단계를 말해 줄 수 있습니까?

답변

2

여기에 Group 변수를 사용하는 것 같으면 복잡 할 수도 있습니다.

SSRS에 이미 그룹이 있으므로 CountRows 함수를 사용할 수 있습니다.

="Alarm Code #" & Fields!CodeID.Value 
& " - " & First(Fields!Description) 
& " - Total: " & CountRows() 

을 또는 크기에 따라, 당신은 당신의 SQL 쿼리에 상관 하위 쿼리를 추가 할 수 있습니다 : 예를 들어, 자리에이 표현을 넣어

SELECT 
    CodeID, 
    MyField, 
    MyOtherField, 
    (SELECT COUNT(*) FROM myTable t1 WHERE t1.CodeID = t2.CodeID) AS MyRowCount 
FROM 
    myTable t2 

이 그래서 만약, 특히 효율적인 SQL 아니다 당신은 수십만 줄 이상에서 이것을 실행하고 있습니다. 나는 첫 번째 접근 방식을 택할 것입니다.

+0

아하 사람은 그게 그렇게 간단하다고 믿을 수 없다. :) countrows를 사용하여 테이블을 확인하고 countrows가 1보다 작 으면 숨기고 대신 데이터 레이블이 표시되지 않습니다. 어떻게 든이 보고서를 할 때 나는 그것을 잊었다. Jamie F에게 감사드립니다! – TWood

+0

예, SSRS의 집계 함수는 매우 똑똑합니다. 범위를 자동으로 현재 그룹으로 조정하므로 대개 범위를 지정하지 않고 원하는대로 수행합니다. 그러나 항상 그룹핑의 이름을 추가 할 수 있습니다 :'CountRows ("MyGroupName")'당신이 올바른 그룹화 레벨의 수를 얻는 지 확인하십시오. –