确保SQL报告正确性的最佳做法是什么?

时间:2010-03-16 22:07:53

标签: sql database report

我的部分工作涉及从SQL Server创建报告和数据,以用作决策信息。大多数数据都是汇总的,例如库存,销售和部门总成本以及其他维度。

当我创建报告时,更具体地说,我正在开发SELECT以从OLTP数据库中提取聚合数据,我担心错误的JOIN或GROUP BY,例如,返回不正确的结果。

我尝试使用一些“最佳做法”来阻止我“生成”错误的数字:

  • 创建聚合数据集时,请始终在没有聚合的情况下展开此数据集并查找任何明显错误。
  • 将展开的数据集导出到Excel,并比较SQL Server和Excel中的SUM(),AVG()等。
  • 让使用该信息的人参与并要求进行一些验证(请人们帮助识别数字上的错误)。
  • 永远不要在下午部署这些东西 - 如果可能的话,试着在第二天早上看看T-SQL,心情焕然一新。我使用这个简单的程序纠正了很多错误。

即使有这些程序,我也总是担心这些数字。

确保报告正确性的最佳做法是什么?

3 个答案:

答案 0 :(得分:2)

您是否考虑使用产生已知结果的测试数据填充表格,并将查询结果与预期结果进行比较。

答案 1 :(得分:1)

  • 以书面形式签名

我发现最好的做法之一是读者/客户端和开发人员都在同一个(记录的)页面上。这样,当出现神秘数字时(他们会这样做),我可以用书面形式指出说明,“这就是你看到这个数字的原因。你希望它与众不同吗?”。

  • 测试,测试,测试

对于非常复杂的报告,我们与客户一起上下测试数据,直到所有数字都正确,客户满意。

  • Edge Cases

我们在报告系统中发现了一个非常复杂的案例,它将所有内容都颠倒了(在我们的最后)。如果用户生成报告(例如2009年末),输入新年的数据,然后返回以生成相同的报告,该怎么办?数据已经改变,但该报告不应该。思考和处理这些案例可以省去很多心痛。

答案 2 :(得分:0)

写一些自动化测试。

我们有很多报告服务报告 - 我们使用Selenium对它们进行测试。我们使用测试数据页面将一些已知数据喷射到空数据库中,然后运行报告并声明数字符合预期。

每次我们登记时都会运行构建,所以我们知道我们没有做过任何太愚蠢的事情