我会将每组每月预测作为一组行来设计。要支持历史数据,请添加“创建日期”字段。所以类似(这是 T-SQL 语法,我很久以前就放弃了 Access):
CREATE TABLE dbo.TaskEstimates
(
DateCreated datetime NOT NULL,
EstimateYearMonth datetime NOT NULL,
HoursRequired decimal NOT NULL,
CONSTRAINT PK_TaskEstimates PRIMARY KEY CLUSTERED
(
DateCreated ASC,
EstimateMonth ASC
)
);
DateCreated
例如,对于今天输入的估计集的所有成员,该字段将是相同的。该EstimateYearMonth
字段仅包含年和月(日 = 1,时间部分 = 0:00:00.000)。
然后,聚合函数和分组标准的组合允许检索您需要的任何数据组合。
除了字段之外,或者代替DateCreated
字段,您还可以使用GroupID
为每个集合递增的 a。所以第一组都有GroupID
== 1,下一组 == 2,依此类推。如果您被问到计数查询问题而不是过时查询问题,这可能更容易进行历史选择;例如“给我第三个周期的估计”而不是“给我在六月完成的估计”。
顺便说一句,我通常datetime
用于所有与日期和时间相关的数据,而不是将其分成年、月等,因此我只需要规范化一些选择标准,而不是摆弄每一行的类型转换。