我正在使用 SQL Server 报告服务。我的大多数查询都作为报告运行,这些报告只是导出为 PDF。
我想知道哪种类型的计算(如果有的话)应该在实际的 SQL 查询中进行,哪些应该使用 SSRS IDE(商业智能工作室)进行计算。
例如,如果我有一份 12 个月(12 个月)的销售报告,需要最近 3 个月的销售平均值,那么该平均值应该在哪里计算?
大多数计算/聚合是否应该在表示层中完成?有什么例外吗?
我正在使用 SQL Server 报告服务。我的大多数查询都作为报告运行,这些报告只是导出为 PDF。
我想知道哪种类型的计算(如果有的话)应该在实际的 SQL 查询中进行,哪些应该使用 SSRS IDE(商业智能工作室)进行计算。
例如,如果我有一份 12 个月(12 个月)的销售报告,需要最近 3 个月的销售平均值,那么该平均值应该在哪里计算?
大多数计算/聚合是否应该在表示层中完成?有什么例外吗?
这可以从两个方面来看:
其中任何一个的答案都是“视情况而定”。对于还显示趋势的 12 个月报告的示例,如果您有几个参数会更改用于获取数据的逻辑,我会很想在 SQL 存储过程中尽可能多地做(即使是平均值)并使报告变得非常“愚蠢”以仅显示结果。如果报告非常简单或逻辑仅特定于该报告,那么在报告中可能会起作用。
为了可重用性,我喜欢用 SQL 做事。对于复杂的显示内容(热图、图表等),在报告中可能会更好。
将报告的逻辑与报告保持一致。SQL Server 将为您提供数据,但最好在报告中保留自定义逻辑。
我不会让报告往返于数据库进行计算。如果您的存储过程分组和排序与您的报告布局相匹配,那么 SSRS 在进行聚合计算方面非常有效。