我有一组跨越3天的数据。根据左边的第一列,是否可以根据每天的数据计算左起第三列中值的平均值?
最终结果将是两列:
1/1/2008 | 1.605
2/1/2008 | 1.59
3/1/2008 | 1.56
我认为逻辑将像循环一样:
但是我们如何在MS Access中实现循环?
以下是数据集:
编辑: 如果我想按日期分组,那天是在昨天的下午6点到今天的下午6点之间?
BETWEEN
子句用于检查昨天的18:00:00到今天的18:00:00之间的记录。例如,对于 1/1/2008 ,记录将从1/1/2008 6:00PM
开始到2/1/2008 6:00PM
。对于 2/1/2008 ,记录将从2/1/2008 6:00PM
开始到3/1/2008 6:00 PM`。等等......
我有一个代码片段,用于检查:
([In process analysis result].[Date Time]) Between Date()-1+#12/30/1899 18:0:0# And Date()+#12/30/1899 18:0:0#)
但它只在前一天组合。我该如何申请这组数据?
编辑2: 这是我所做的查询,但仍然不正确。知道什么是错的吗?
SELECT DateValue([Date Time]) As DateValue, Avg([MFR g/10min]) AS [AvgOfMFR g/10min]
FROM [In process analysis result]
WHERE ((([Date Time])>Now()-365) AND (([Operation Grade-Load]) Like "EX*") AND (([Date Time]) Between [Date Time]-1+#12/30/1899 18:0:0# And [Date Time]+#12/30/1899 18:0:0#))
GROUP BY DateValue([Date Time]);
答案 0 :(得分:0)
选择值的AVG和GROUP BY日期
答案 1 :(得分:0)
你的逻辑看起来基本正确。 where
子句取消了。从这开始:
SELECT DateValue(DateAdd("h", 6, [Date Time])) As DateValue,
Avg([MFR g/10min]) AS [AvgOfMFR g/10min]
FROM [In process analysis result]
WHERE [Date Time] > DateAdd("yyyy", -1, DateAdd("h", 6, Now())) AND
[Operation Grade-Load] Like "EX*"
GROUP BY DateValue(DateAdd("h", 6, [Date Time]));
我不确定
BETWEEN
条件应该做什么。如果 你想要一个特定的日期范围,只需使用日期常量。
修改:日期/时间应偏移6小时,如上所述。应该使用适当的1年后表达。不确定当前时间是否也应该移动6小时(如图所示);如果没有,只需删除Now()的 DateAdd 。