2011-05-11 4 views
0

SSRS 2005에서 여러 데이터 집합으로 보고서를 만듭니다. 예를 들어화물 상자를 배달하는 트럭의 수와 각 호송에 대해 배달되는 상자의 수를 예로들 수 있습니다. 트럭은 출발 시간을 가지며 목적지에 도달하기 전에 오랜 시간 여행 할 수 있습니다 (그리고 나는 얼마나 많은 트럭이 운행되는지보고 싶습니다). 결과 집합의 예는 다음과 같습니다.SSRS 2005 다른 매개 변수를 동일한 데이터 집합에 전달

+---------------------+------------+------------+------------+   
|      | Current |  MTD |  YTD | 
+---------------------+------------+------------+------------+ 
| Convoy 1 | # Trucks |  3  |  0  |  16  | 
|   | Boxes |  150 |  0  | 1005 | 
+----------+----------+------------+------------+------------+ 
| Convoy 2 | # Trucks |  0  |  12  |  8  | 
|   | Boxes |  0  |  144 |  113 | 
+----------+----------+------------+------------+------------+ 
| Convoy 3 | # Trucks |  0  |  0  |  0  | 
|   | Boxes |  0  |  0  |  0  | 
+----------+----------+------------+------------+------------+ 

SQL을 보고서에 저장하고 저장된 procs 또는 views를 사용하지 말 것을 요청 받았습니다.

(Convoy 3에서와 같이) 그 시간에 배달하는 트럭이 없더라도 모든 호송 장치는 결과 세트에 나타나야합니다. 현재 쿼리에 대해 수행하고있는 작업은 모든 호송을 찾은 다음 각 날짜 범위에 참여를 유지하는 것입니다. 예를 들어 의사 쿼리는 다음과 같습니다.

select a.convoy_name, current.trucks, current.weight, mtd.trucks, mtd.weight, ytd.trucks, ytd.weight 
from(
    (get all convoys) a 
    left join 
    (get trucks and boxes for current date) current 
    on a.something = current.something 
    left join 
    (get trucks and boxes for mtd) mtd 
    on a.something = mtd.something 
    left join 
    (get trucks and boxes for ytd) ytd 
    on a.something = ytd.something 
) 

날짜 쿼리의 유일한 차이점은 시작 날짜입니다. 내가 할 수 있기를 원하는 것은 시작 날짜를 전달하고 현재, mtd 또는 ytd 결과를 얻는 일반적인 쿼리를 만드는 것입니다 (마치 저장된 proc를 사용하는 것처럼). 누군가 here과 비슷한 문제를 게시했지만 답변을 얻지 못했습니다.

SSRS 2005는이 방법이 있습니까? (그리고 이후 버전에서도 가능한지 궁금하다.) 이미이 내 리포트의 하나로서

가 오히려 약 10

답변

0

내가 당신의 질문을 이해 완전히 확실하지 않다 무리 더 많은 데이터 세트를 추가 할 것입니다 (죄송!). 다른 질문을 살펴보면 쿼리 수준에서 데이터를 필터링하지 않고 보고서 수준에서 필터링하는 Excel SUMIF 명령과 같은 것으로 기대되는 것처럼 보입니다. 쿼리에서 사용되지 않고 그룹 세부 수준에서 필터링하는 매개 변수를 만들어 SSRS 2005에서 가능합니다. 질문에 대한 답을 구할 수 있습니까?

+0

안녕하세요. 그것은 내가 뭘 찾고 있었는지는 아닙니다. 저는 매개 변수를 전달할 일반 쿼리 (예 : 응용 프로그램에서 재사용 할 수있는 정렬 함수)와 비슷합니다. 그게 일을 좀 더 명확하게합니까? – lmg

+0

아하, 내가 거기에 가고 있다고 생각해! 각 데이터 집합/쿼리는 한 번만 AFAIK 실행되므로 다른 데이터를 얻기 위해 반복적으로 호출 할 수 없습니다. 때로는 대형 데이터 집합을 반환 한 다음 그룹 필터를 사용하여 레이아웃 내에서 다이 싱하여이 과정을 마무리 할 수 ​​있습니다. – TomG

+0

나는 그것을 할 수있는 방법이 있었으면 좋겠다고 생각했지만 그런 행운은 없다고 생각합니다. 도와 줘서 고마워 TomG! – lmg

관련 문제