2016-07-15 22 views
0

でサポートされていない構築します以下:は私がSSRSでデータセットを作成しようとしていますが、私は私が使用しているクエリがようである、</p> <p><code>The OVER SQL construct or statement is not supported.</code></p> <p>を言って、エラーを取得していたとのクエリを持ってSSRS

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 

この問題に対して私はOVER SQL Constructをどのように使用できますか?

+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、実際に私がサポートしていないためにエラーをスローした後でも使用したクエリは、結果セットを返します。しかし、私もあなたのクエリを試して、それはパフォーマンスを向上させることが判明.... –

関連する問題

 関連する問題