MS Access SQL 范围和平均值

Posted

技术标签:

【中文标题】MS Access SQL 范围和平均值【英文标题】:MS Access SQL Range and Average 【发布时间】:2017-06-11 09:04:24 【问题描述】:

[Date Time] 和 [MFR g/10min] 是 [In process analysis result] 表中的字段。我应该找到“每天 [MFR g/10min] 的范围(最大-最小)”和“[MFR g/10min] 的平均值”。 一天定义为“前一天”18:00:00 到“今天”17:59:00。

SELECT [In process analysis result].[Date Time], Format([In process analysis result].[Date Time],"dd/mmm/yy") AS [Extracted Date], Format([In process analysis result].[Date Time],"hh:nn:ss") AS [Extracted Time], IIf([Extracted Time]<"18:00:00",DateAdd("d",-1,[Extracted Date]),[Extracted Date]) AS [New Date], [In process analysis result].[MFR g/10min]
FROM [In process analysis result];

我提取了[提取日期]和[提取时间]。以【提取时间】小于18:00:00为条件,视为前一天。最终结果是[新日期]。

但是,从这个查询中,我不知道如何获得按 [New日期]。我需要一些帮助和指导。感谢是否有人可以帮助我。 谢谢。

【问题讨论】:

【参考方案1】:

您在正确的轨道上,但您可以通过取 DateValue([Date Time]) 并在 Hour([Date Time]) 为 18 或更大时添加 1 天来简化日期计算。然后,将该查询用作执行实际计算的查询中的子查询:

SELECT 
    EffectiveDate, 
    MAX([MFR g/10min]) - MIN([MFR g/10min]) AS DailyRange, 
    AVG([MFR g/10min]) AS DailyAverage 
FROM
    (
        SELECT 
            DateAdd("d", IIf(Hour([Date Time]) < 18, 0, 1), DateValue([Date Time])) AS EffectiveDate, 
            [MFR g/10min] 
        FROM [In process analysis result]
    )
GROUP BY EffectiveDate

【讨论】:

以上是关于MS Access SQL 范围和平均值的主要内容,如果未能解决你的问题,请参考以下文章

SQL,嵌套查询(MS ACCESS)

提高计算 MS-Access 中大型数据集 7 天滚动平均值的查询的性能

MS Access 2003 - 格式化导致列表框问题

SQL高效运行注意事项

报告摘要 - MS Access

MS-Access SELECT TOP N 子查询 SQL