2016-07-15 4 views
0

에서 지원하지만 구축합니다 내가 말하는 오류,내가 SSRS에서 데이터 집합을 만들려고하고있는 쿼리를 SSRS

내가 사용하고 쿼리가 같다 The OVER SQL construct or statement is not supported.

무엇입니까 아래 :

SELECT AM, REP, PRIM_SPEC, SUM(TOT_CALL) 
FROM (
     SELECT AM, REP, SUM(TOT_CALL) as TOT_CALL, 
     CASE 
      WHEN ROW_NUMBER() OVER (PARTITION BY REP ORDER BY SUM(TOT_CALL) DESC) > 5 
      THEN 'Other' 
      ELSE prim_spec 
     END AS prim_spec 
     FROM DEMO_CALL 
     WHERE PERIOD >= @Mese 
     AND (REP IN (@REP)) 
     AND (AM = @AM) 
     GROUP BY AM, REP, prim_spec 
) A 
GROUP BY AM, REP, PRIM_SPEC 
ORDER BY 1,2,4 DESC 

어떻게이 오버런을 해결할 수 있습니까?

+0

SQL Server에 연결하는 데 사용한 연결 유형은 무엇입니까? – Mike

답변

1

이것은 SSRS에는 문제가 아니지만 SQL 문 자체와 관련됩니다. 생성되기 전에 ROW_NUMBER을 (를) 비교할 수 없습니다. 이것을 시도하십시오 :

SELECT distinct AM, REP, TOT_CALL, 
CASE 
    WHEN RN > 5 
    THEN 'Other' 
    ELSE prim_spec 
    END AS prim_spec 
FROM (
SELECT AM, REP, SUM(TOT_CALL) as TOT_CALL, ROW_NUMBER() OVER (PARTITION BY REP ORDER BY SUM(TOT_CALL) DESC) as RN 
FROM DEMO_CALL 
WHERE PERIOD >= @Mese 
    AND (REP IN (@REP)) 
    AND (AM = @AM) 
GROUP BY AM, REP 
) DEMO_CALL 
GROUP BY AM, REP, prim_spec 
ORDER BY 1,2,4 DESC 
+0

감사합니다 steven, 실제로 지원하지 않는 오류를 던진 후에도 사용한 쿼리는 결과 집합을 제공합니다. 그러나, 나는 또한 귀하의 쿼리와 함께 노력하고 성능을 향상시키는 것으로 판명 .... –