【问题标题】:Table of averages by date for multiple IDs多个 ID 按日期排列的平均值表
【发布时间】:2010-12-07 03:37:02
【问题描述】:

我有一张桌子,里面摆满了每个项目都有一个唯一的ItemID。还有另一个表格,其中包含大约每月一次对这些项目进行的测试的信息(有些可能每月进行多次测试,有些可能没有几个月),每个测试条目都有一个完整的日期mm/dd/yyyy。我想每月显示所有数据中一个字段的平均值。所以假设我平均的是物品重量,我想得到一个像这样的表格:

Date AvgOfWeight  
1/09 24.55  
2/09 28.64  
3/09 22.39  

等等……

我知道我可以通过查询来计算平均值,并且可以按特定条件对平均值进行分组,但是有没有一种简单的方法可以按月份对 mm/dd/yyyy 日期进行分组?

【问题讨论】:

    标签: ms-access group-by grouping average


    【解决方案1】:

    我喜欢这个可以在这里使用的 strzero 函数:

    m_monthYear = strZero(year(date()),4) & "-" & strZero(month(date()),2)
    

    结果看起来像 2009-09 并且可以按升序排序,因为它们从年份开始。您只需按如下方式创建这个 strZero 函数:

    Public function strZero(x_myLong as long, x_length as integer) as string
    Dim m_strZero as string
    
    m_strZero = trim(str(x_myLong))
    do while len(m_strZero) <= x_length
        m_strZero = "0" & m_strZero
    loop
    strZero = m_strZero
    end function
    

    这是即时编写的。请检查 str 的所有参数(如果有),添加错误管理,并根据自己的需要进行调整。例如,您可能希望将 x_myLong 作为变体传递,以便返回“0000”字符串。在将数字转换为固定长度的字符串时,此函数还有多种其他用途。

    【讨论】:

    • 这基本上就是我最终要做的。不过,我都是用 SQL 完成的。我按年分组:年(日期),然后按月:月(日期)分组,然后出于显示目的,我做了一个表达式 Year_Date:CStr(Year) + "/" + CStr(Month)。感谢您的帮助
    猜你喜欢
    • 1970-01-01
    • 2019-01-21
    • 1970-01-01
    • 1970-01-01
    • 2014-06-04
    • 1970-01-01
    • 1970-01-01
    • 2023-04-04
    • 1970-01-01
    相关资源
    最近更新 更多