1

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

**tblDailyLabour**
DailyLabourID - PK
DateRecorded
EmployeeID
QtyHours

**tblEmployeeHistory**
EmpHistoryID - PK
DateApplicable
EmployeeID
PayRate

今天将 Employee1 输入到数据库中。他被设置在员工的“通讯录”中,并为他分配了各种价值。截至今天,他的工资率为 23.50 美元/小时。

因此,从今天开始,所有记录的小时数将根据 Employee1 的今天费率 (23.50 * [QtyHours]) 计算。一个月过去了,Employee1 的工资增加到 25.00 美元/小时。该值作为新条目记录在“员工历史记录”中,并且自 4 月 17 日起生效。因此,从 4 月 17 日起,他的计算时间为 (25.00 * [QtyHours])。

在每日报告中,这很简单,因为查询会检查报告日期并计算 Employee1 的总数。无论报告是 3 月 17 日还是 4 月 25 日,查询都会查找分配的费率并计算总成本。

但是,如果我要创建一份管理报告来评估 3 月 17 日至 6 月 3 日期间所有日子的总成本,则可能需要考虑员工费率的一些变化。

这是我遇到问题的地方。如果 DateApplicable <= DateRecorded,我无法弄清楚如何不显示任何以前的费率。

我该如何编写一个查询来确定每天的费率 - 取决于员工历史记录中的值 - 并计算总和?

如果这个问题的措辞不是很好,我提前道歉,但非常感谢您的帮助!

4

1 回答 1

0

我认为如果您在“地址簿”中设置日期范围(开始日期和结束日期)而不仅仅是开始日期,可能会更容易。
在当前记录上,将结束日期设为 9999 年 12 月 31 日。输入新的当前记录时,更新最后一条记录的结束日期。

于 2013-03-14T18:08:19.927 回答