设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12
返回列表 发新帖
楼主: leonard123
打印 上一主题 下一主题

[其它] 移动平均法问题,有人知道吗?

[复制链接]
11#
发表于 2009-1-16 17:00:16 | 只看该作者
学习一下
12#
发表于 2009-1-17 09:30:53 | 只看该作者
原帖由 leonard123 于 2006-9-18 23:49 发表
我想通过计算一列中的3个数平均值得到一个新的列,如第1个记录到第3个记录的平均值为新列的第1记录,第2个记录到第4个记录的平均值为新列的第2记录。有人知道怎么做吗?指点一下。


不够复杂,在收发存环节运用移动平均法要复杂一些。
13#
发表于 2009-1-17 11:51:36 | 只看该作者
select 时间,数,davg('数','表1','val(时间) between ' & 时间 & '-2 and ' & 时间) as MP
from 表1
order by val(时间)  


结果如下, 通过查询即可以实现。这样无需在表中保留这个字段,避免当某个记录UPDATE是,你要同时修改相关的三条记录。
Query1时间MP133254323.33333333333333464.33333333333333585.33333333333333635.66666666666667755.3333333333333387596610251154.333333333333331295.33333333333333131514551522.666666666666671633.333333333333331763.666666666666671854.66666666666667197620662166.33333333333333
14#
发表于 2009-1-17 11:57:29 | 只看该作者
select a.时间,a.数,avg(b.数) as MP
from 表1 a inner join 表1 b on val(a.时间) >= val(b.时间) and val(a.时间)-2 <= val(b.时间)
group by a.时间,a.数
order by val(a.时间)

如果不是在ACCESS环境内使用MDB,则可以用上面的JET-SQL语法。 结果相同如下。


  1. 时间 数 MP
  2. 1 3 3
  3. 2 5 4
  4. 3 2 3.33333333333333
  5. 4 6 4.33333333333333
  6. 5 8 5.33333333333333
  7. 6 3 5.66666666666667
  8. 7 5 5.33333333333333
  9. 8 7 5
  10. 9 6 6
  11. 10 2 5
  12. 11 5 4.33333333333333
  13. 12 9 5.33333333333333
  14. 13 1 5
  15. 14 5 5
  16. 15 2 2.66666666666667
  17. 16 3 3.33333333333333
  18. 17 6 3.66666666666667
  19. 18 5 4.66666666666667
  20. 19 7 6
  21. 20 6 6
  22. 21 6 6.33333333333333
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-11-13 12:56 , Processed in 0.112615 second(s), 26 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表