OVER SQL SSRS 不支持构造
OVER SQL Construct not supported in 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
如何使用我的 OVER SQL 构造来解决这个问题?
这不是 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
我有一个查询,我试图用它在 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
如何使用我的 OVER SQL 构造来解决这个问题?
这不是 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