我已经杀死了我的电子表格-谁知道查询18万行会太多。:)
我已经计划好了我的数据库替换,但是在规范化和清理电子表格数据时遇到了几个绊脚石。
我有一个类似于下面的数据表,称为RD1
。
需要组标识符。使用给定的样本:前3条记录是第1组,接下来的2条是第2组,最后2条是第3组。使用Excel后面的VBA来填充列。当Contract值变化时,组ID也随之变化。
Sub SetGID()
Dim c As Integer, r As Integer, x As Integer, i As Integer
c = 1
r = 2
i = 1
x = Cells(r, 4)
Do While Not IsEmpty(Cells(r, 2))
Cells(r, 1) = i
r = r + 1
If Cells(r, 4) <> x Then
i = i + 1
x = Cells(r, 4)
End If
Loop
End Sub
或者将数据原样导入到Access中,然后运行类似的过程来更新表中的字段。这将涉及打开记录集并循环其记录。
聚合查询在GroupID上进行汇总。
SELECT GroupID, EmpNo, Contract,
MIN(WorkDate) AS StartDate,
MAX(WorkDate) AS EndDate
FROM RD1
GROUP BY GroupID, EmpNo, Contract
我的问题中遗漏了一点,这一点非常重要,即当EmpNo
开始时,它们将具有连续的日期,直到它们完成时没有遗漏日期。考虑到这一点,您可以将表连接到表本身以返回前一天和第二天的数字。
RD1