2011-07-13 41 views
0

我正在寻找实施以下的最佳方法。保存复杂的MySQL查询/报告的结果

我有一个MySQL查询,分析公司的表现,并输出销售额,收入,成本等,基本上输出最终的毛利和净利润数字。它运行良好,管理人员可以选择任何日期范围来运行它,并且它会输出该范围内的所有内容 - 因此他们理论上可以看到公司今天,昨天,本周,上个月还是三天中的第17天几个月前...你明白了。

但是,当报告中使用的某些数字是可变的,并且涉及波动的外部成本(如管理费用等)时,会出现问题。我允许用户在设置表中指定这些成本和开销,性能查询使用这些来计算它的数字。但是,这些可变数字代表现在,如果您想从过去X个月/年的公司业绩中查看公司业绩,那么今天的公司业绩与他们抵消时会产生不准确性。

我想到了一些解决方案。

  1. 我可以让管理人员设置一个日期范围来应用开销。例如,2011年6月,日常开销为2000英镑,而2011年7月开销为2250英镑。
  2. 或者我可以将性能报告/查询保存到另一个表,显然它将变量数字从运行时间锁定。这甚至可以通过一个crontab实现自动化,也许每晚都会运行。

您会推荐哪种方式?

回答

2

如果我是你,我会选择第一个选项(1),并创建一个表来存储特定日期的延迟开销。这对于您在任何时间点针对桌面上的纯粹/“处女”数据运行任何类型的查询都会更加灵活。

另一方面,第二个选项对我来说似乎并不可行,因为在不同日期范围内,您无法计算所需查询和报告的所有复杂性。