2014-05-09 4 views
1

SSRS 보고서를 필터링하여 여러 위치의 각 위치에서 판매되는 상위 20 개 항목을 표시하려고합니다. 쿼리를 가지고있는 모든 항목을 끌어서 합계 (수량)로 정렬하여 판매하고 또한 쿼리를 행 번호를 생각하여 상위 20 행 번호로 SSRS를 필터링 할 수 있다고 생각하게합니다. 문제는이 방법이 위치가 아닌 전체 데이터 세트를 필터링한다는 것입니다.여러 위치에 대해 SSRS 상위 20 개

검색어 : 코드가 나쁜

SELECT 
    [Location] 
    ,[Item No_] 
    ,sum(-[Quantity]) as TotalQuantity 
    ,ROW_NUMBER() OVER (PARTITION BY [Location Code] ORDER BY sum(-[Quantity]) DESC) AS RN 
FROM [Ledger Entry] 
    left join [Item] i on [Ledger Entry].[Item Number] = i.No_ 
    WHERE 
    [Date] BETWEEN @StartDate and @EndDate 
    GROUP BY 
    [Location Code] 
    ,[Item No_] 

죄송 경우, 내가 SQL에 아주 새로운 오전.

답변

0

위의 코드에서 쿼리의 기초가 있습니다. 이것은 각 위치에 대해 1에서 n까지 카운트해야합니다. 이것은 레코드를 선택하는 하위 쿼리가됩니다. 아래 예 :

이 제한된 결과 세트를 SSRS에 전달하면 위치 당 상위 20 개 항목 만 표시됩니다. 일반적으로 SSRS보다는 데이터 쿼리에서 성능을 제한하고 필터링하는 것이 좋습니다.

+0

완벽한, 감사합니다! –

관련 문제