给出Access 2010中的两个(简化)表:
**tblDailyLabour**
DailyLabourID - PK
DateRecorded
EmployeeID
QtyHours
**tblEmployeeHistory**
EmpHistoryID - PK
DateApplicable
EmployeeID
PayRate
今天将Employee1输入数据库。他将员工的“地址簿”设置为分配给他的各种价值观。截至今天,他的PayRate为每小时23.50美元。
所以从今天开始,所有记录的小时数将根据今天的雇员1的费率计算(23.50 * [QtyHours]) 一个月过去了,Employee1的工资增加到25.00美元/小时。此值将作为“员工历史记录”中的新条目记录,并在4月17日起生效。因此,从4月17日开始,他的计算时间为(25.00 * [QtyHours])。
在每日报告中,这是直接的,因为查询会检查报告日期并计算Employee1的总计。无论报告是3月17日还是4月25日,查询都会查找指定的费率并计算总费用。
但是,如果我要创建一个管理报告来评估3月17日到6月3日之间所有日期的总成本,那么可能会有几个需要考虑的员工费率变化。
这是我遇到问题的地方。如果DateApplicable是< = DateRecorded,我无法弄清楚如何不显示任何先前的费率。
我如何编写一个确定每天费率的查询 - 取决于员工历史记录中的值 - 并计算总金额?
如果这个问题的措辞不是很好,我会提前道歉,但感谢大家帮忙!
答案 0 :(得分:0)
我认为如果您在“地址簿”中输入日期范围(开始日期和结束日期)而不仅仅是开始日期可能会更容易。
在当前记录中,结束日期为12/31/9999。输入新的当前记录时,请更新最后一条记录的结束日期。