我正在寻找实现以下内容的最佳方法。
我有一个 MySQL 查询,可以分析公司的业绩,并输出销售额、收入、成本等,并基本上输出最终的毛利润和净利润数据。它运行良好,管理人员可以选择任何日期范围来运行它,并且它将输出该范围内的所有内容 - 因此理论上他们可以看到公司今天、昨天、本周、上个月或三月 17 日的表现几个月前...你明白了。
然而,当报告中使用的某些数字是可变的,并且涉及波动的外部成本(例如管理费用等)时,就会出现问题。我允许用户在设置表中指定这些成本和间接费用,性能查询使用这些来计算其数字。但这些可变数字代表现在,因此,如果您想查看过去 X 个月/年的公司业绩,而今天的管理费用被抵消,从而造成不准确,那么这些数字就没有任何意义.
我想到了几个解决方案。
- 我可以允许经理设置一个日期范围来应用管理费用。例如,2011 年 6 月,每日管理费用为 2000 英镑,而 2011 年 7 月,每日管理费用为 2250 英镑。
- 或者我可以将性能报告/查询保存到另一个表中,这显然会从运行时开始锁定变量数字。这甚至可以通过 crontab 自动化,并且可能每晚运行一次。
您推荐哪种方式?
最佳答案
如果我是您,我会选择第一个选项 (1),并创建一个表来存储特定日期的延迟间接费用。这对于您在任何时间点针对表上的纯/“原始”数据运行任何类型的查询会更加灵活。
另一方面,第二个选项对我来说似乎不太可行,因为您不可能计算不同日期范围内所需的查询和报告的所有复杂性。
关于mysql - 保存复杂MySQL查询/报告的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6677495/