|
需要考虑的情况太多了:
| | 实际开始日期 | | | 实际结束日期 | | 情况1 | 预设开始日期 | | | 预设结束日期 | | | 情况2 | 预设开始日期 | | | | | 预设结束日期 | 情况3 | | | 预设开始日期 | 预设结束日期 | | | 情况4 | | | 预设开始日期 | | | 预设结束日期 | 如果做联合查询吧,计算时还要继续分情况计算一次;如果不做联合查询,则需要分别追加数据进去。个人觉得很麻烦,还是那一句,重新按天数来生成表。这里写了一个模块,用于重新组织数据结构。- '更改表结构,按天数生成临时表
- '统计费用时,请使用时间段作为条件
- Function getTemp()
- Dim rst1 As New ADODB.Recordset
- Dim rst2 As New ADODB.Recordset
- Dim eDate As Date
- rst1.Open "人员", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
- rst2.Open "临时表", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
- Do Until rst1.EOF
- eDate = rst1("开始")
- Do Until eDate > rst1("结束")
- rst2.AddNew
- rst2("合同编号") = rst1("合同编号")
- rst2("费用名称") = rst1("费用名称")
- rst2("人数") = rst1("人数")
- rst2("日工资") = rst1("日工资")
- rst2("日期") = eDate
- eDate = eDate + 1
- rst2.Update
- Loop
- rst1.MoveNext
- Loop
- rst1.Close
- rst2.Close
- End Function
复制代码 剩下的查询,我想,你应该会写了吧?如果不太清楚,请留意2楼的回复。
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|