Sql 根据历史值的变化计算一段时间内的产品总和

Sql 根据历史值的变化计算一段时间内的产品总和,sql,ms-access,ms-access-2010,Sql,Ms Access,Ms Access 2010,给定Access 2010中的两个简化表: **tblDailyLabour** DailyLabourID - PK DateRecorded EmployeeID QtyHours **tblEmployeeHistory** EmpHistoryID - PK DateApplicable EmployeeID PayRate 今天,Employee1被输入数据库。他在一本“通讯录”中记录了员工的各种价值观。截至今天,他的工资率为每小时23.50美元 因此,从今天开始,所有记录的小时数

给定Access 2010中的两个简化表:

**tblDailyLabour**
DailyLabourID - PK
DateRecorded
EmployeeID
QtyHours

**tblEmployeeHistory**
EmpHistoryID - PK
DateApplicable
EmployeeID
PayRate
今天,Employee1被输入数据库。他在一本“通讯录”中记录了员工的各种价值观。截至今天,他的工资率为每小时23.50美元

因此,从今天开始,所有记录的小时数将根据今天的工资率计算,1为23.50*[QTY小时] 一个月过去了,雇员的工资提高到每小时25美元。该值作为新条目记录在“员工历史记录”中,并在4月17日起生效。因此,从4月17日起,他现在被计算为25.00*[QtyHours]

在日报上,这是一个直接的查询,用于检查报告日期并计算员工总数1。无论报告是3月17日还是4月25日,查询都会查找分配的费率并计算总成本

但是,如果我要创建一份管理报告,评估3月17日至6月3日期间所有天数的总成本,那么员工工资可能会有一些变化,需要考虑


这就是我遇到的问题。如果DateApplied是的话,我不知道如何不显示任何以前的费率。我认为如果在“地址簿”中设置日期范围开始日期和结束日期,而不仅仅是开始日期,可能会更容易。
在当前记录上,将结束日期设为1999年12月31日。输入新的当前记录时,更新最后一条记录的结束日期

谢谢你,汤姆。这实际上是一个很好的、直截了当的解决方案,而且似乎效果很好。如果我在员工历史记录中添加新记录时自动更新该字段,则用户甚至不必查看该字段。干杯