2013-04-29 4 views
0

보고서 작성 도구에서 보고서를 작성합니다. 나는 2 개의 데이터 세트를 가지고 있는데, 그들은 은 복잡하기 때문에을 병합 할 수 없다. 내가하고 싶은 것은 두 번째 데이터 세트에서 데이터를 찾기 위해 첫 번째 데이터 세트의 ID를 사용하는 보고서를 작성하는 것입니다. 이것이 가능한가? 다음은 예는없는 정확한 코드는하지만 필요한 :ID로 연결된 2 개의 다른 데이터 세트의 보고서를 작성하려면 어떻게합니까?

첫 번째 데이터 집합 :

select itemID from Items 

두 번째 데이터 집합 :

select itemID, saleAmount, salePrice from Sales 

나는이처럼 내 보고서를 설정하고 싶습니다 :

ItemID  | Sale Count             | Sale Price 
--------------+-------------------------------------------------------------+------------ 
Items.itemID | sum(Sales.saleAmount) where items.itemID = Sales.itemID  | sum(Sales.salePrice) where items.itemID = Sales.itemID 

최종 결과는 다음과 같습니다.

ItemID  | Sale Count             | Sale Price 
--------------+-------------------------------------------------------------+------------ 
1    | 11223              | $123123 
2    | 4537              | $8375 

이것이 가능합니까? 조건부 조회 일 수 있습니까?

+0

이 보고서를 작성하려면 두 테이블과 럼 집계 함수 간의 조인을 사용하십시오. – Hiten004

+0

SQL에서 2 개의 데이터 집합을 결합 할 수 없습니다. 보고서 작성기를 사용해야합니다. 가능합니까? – Bill

답변

1

데이터 집합을 만들 때 데이터를 조인 할 수 없다는 것은 유감입니다.

그 실패, 나는 다른 옵션의 몇 가지 생각할 수 :

사용 LookupSet은 사용자 정의 코드

이 우수한 대답 How to combine aggregates within a group with aggregates across groups within SSRS는이 작업을 수행하는 방법의 완벽한 예를있다.

기본적으로 LookupSet 호출의 결과를 허용하는 함수 (예 : SumLookup)에 맞춤 코드를 추가하고 집계 된 값을 반환합니다. 보고서에 다음과 같은 표현식을 사용할 수 있습니다.

=Code.SumLookup(
    LookupSet(Fields!itemID.Value, Fields!itemID.Value, Fields!saleAmount.Value, "Sales") 
) 

빠른 테스트를 만들었고 완벽하게 작동합니다.

사용 된 보고서

는 데이터 세트, 다음 세부 행에 당신이 판매 정보를 표시하는 하위 보고서를 포함하려는 항목에 따라이가 만든 것 테이블을 수행합니다.

하위 보고서는 하위 보고서에 =Fields!itemID.Value를 전달하는 부모 테이블을 설정합니다, 적절하게 영업을 필터링하는 itemID 매개 변수를 필요 -이 후 관련 판매 데이터를 각 itemID 행에 대해 반복하고 표시 할 것입니다.

가치가있는 부분에 대해서는 첫 번째 옵션을 살펴 보겠습니다. 사용자 지정 코드가 있지만 간단하고 여러 가지 보고서를 배포 할 필요가 없습니다. 그냥 나에게 깨끗해 보인다.

+0

우수! 나는 둘 다 시도하고 다시보고 할 것이다! – Bill

+0

내 쿼리가 복잡해 졌으므로 서브 리포트 경로를 사용 했으므로 작은 조각으로 나누었습니다. – Bill