分离SQL报告层和表示层?

时间:2011-04-28 15:26:02

标签: reporting-services reporting presentation-layer

我正在使用SQL Server Reporting Services。我的大多数查询都作为报告运行,只是导出为PDF格式。

我想知道在实际的SQL查询中应该进行哪种类型的计算,哪些应该使用SSRS IDE(Business Intelligence Studio)进行计算。

例如,如果我有12个月的销售报告(12个月)需要最近3个月的平均销售额,那么该平均值应该在何处计算?

大多数计算/聚合应该在表示层中完成吗?有没有例外?

3 个答案:

答案 0 :(得分:2)

可以通过两种方式来看待:

  • 你在哪里放置业务逻辑
  • 计算需要时间,哪里更有效

其中任何一个的答案都是“它取决于”。对于一个也显示趋势的12个月报告的例子,如果你有几个参数改变了用于获取数据的逻辑,我很想在SQL存储过程中做尽可能多的事情(即使是平均值)并使报告非常“愚蠢”,只显示结果。如果报告非常简单或逻辑仅针对该报告,则报告可能有效。

对于可重用性,我赞成在SQL中做事。对于复杂的显示内容(热图,图表等),在报告中可能更好。

答案 1 :(得分:0)

将报告的逻辑与报告保持一致。 SQL Server将为您提供数据,但最好将自定义逻辑与报告保持一致。

答案 2 :(得分:0)

我不会让报告向数据库进行往返计算。如果您的存储过程分组和排序与报表布局匹配,则SSRS在进行汇总计算时非常有效。