Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

请教关于求平均值的问题

何永强  发表于:2013-05-30 19:40:14  
复制

各位大虾好:

      我是一名超纯度菜鸟,请教大家一个问题,希望能够得到各位大虾的回答。在table2表里计算table1表生产量1——13行的平均值,然后是2——14行平均值......以此类推,这样的目的如何能够做到?我知道在Excel里这个问题很好解决,单在Access里怎么能够做到呢?拜托帮忙回答一下,可以吗?

 

Top
煮江品茶 发表于:2013-05-30 22:05:17

假设你的数据表中有一个连续编号的字段名曰:ID,有个需要求平均值的字段名曰:val,则:

select "1-13行" as 计算范围,avg(val) as 平均值

from 阁下的数据表名称 where ID<=13

union select "2-14" as 计算范围,avg(val) as 平均值

from 阁下的数据表名称 where ID>=2 and ID<=14

union select "3-15" as 计算范围,avg(val) as 平均值

from 阁下的数据表名称 where ID>=3 and ID<=15

在水一方 发表于:2013-05-31 11:05:55

    a = DMin("id", "table1")    '数据最小id
    b = DMax("id", "table1")    '数据最大id
    c = 13                     '每组数据的数量,假设为13
    d = b - c + 1            '数据可分组数

    For i = 1 To d            '从第一组到最后一组,也是每组开始的id号
        j = i + c - 1         '每组末尾id号
        k = i & "-" & j     '利用i、j形成表达式:“1-13”,"2-14”
       
        DoCmd.SetWarnings False    '利用追加查询写入表2,利用代码疲敝系统警告信息,注意,这里的标点符号和空格比较复杂,千万不能搞错!
        DoCmd.RunSQL "INSERT INTO table2 (grp, grpid, numbavg ) " & _
                                "SELECT " & i & " AS grp," & k & " AS idgrp,avg(numb) AS numbavg " & _
                                "FROM table1 " & _
                                "WHERE ([id]>=" & i & " AND [id]<=" & j & ") ;"
    Next

    Me.Child3.SetFocus    '对子窗体的内容进行排序和刷新
    Me.OrderByOn = True
    Me.OrderBy = "grp"
    Me.Recalc

 

�������ش˸���



总记录:2篇  页次:1/1 9 1 :