2012-01-27 48 views
1

如何在SSRS 2008中实现OVER()命令?替代SSRS中的OVER命令

有没有诀窍呢,还是我卡住了?

如果我确实无法使用OVER(),那么如何在SSRS报告中使用PARTITION?

OVER()满足我的要求,Telerian(另一名成员)通过指出它非常有帮助 - 但SSRS似乎无法将其用于报告。

每当我在SSRS SELECT语句中使用OVER()或PARTITION的变体时,系统会拒绝我的任何想法或解决方法?

,我是从2008年的查询工作室接收该错误消息是:

The OVER SQL construct or statement is not supported. 
+0

您报告哪个RDBMS(SQLServer,Oracle,MySQL)?你收到什么错误信息? – 2012-01-27 08:30:12

+0

我正在使用SQL Server 2008,并且错误消息是OVER()不受支持 - 但大约25%的时间它开始在SSRS 2008R2中运行报告,但停顿并给我提供了死亡屏幕。 – 2012-01-27 14:14:20

+0

您是否给了汇总列一个列别名? – 2012-01-27 14:26:00

回答

1

这可能是由于不包括用于归纳列列别名 - 以下SQL中产生一个可用的数据集对我SSRS:

select d.*, 
     ROW_NUMBER() over (partition by date order by id) rn 
from dbo.myTable d 
+1

最终,问题发生在SSRS查询工作室,该工作室拒绝了我的OVER()语句。该报告运行良好,但如果我加载查询工作室并去编辑SQL代​​码,我得到一个'不支持'的消息。它并没有阻止实际的报告运行,但确实给了它打嗝(我不知道我在代码中有什么让它重复崩溃,它可能是像表锁,而不是SSRS)。另一方面,你的结果正是我最终使用的结果!我发现通过ASC和DESC排序日期列,我可以选择第一行,一种粗略的LASTDATE()命令。 – 2012-01-27 19:10:03