access分组数据各月的平均值

cdq872 2012-02-27 10:27:25
access库,用以下求分组数据各月的平均值,结论不对,但求和却是对的,一直郁闷,现求解请指点。

Select 站点,
AVG(iif(Mid(日期,5,2)='01',平均,0)) as 1月,
AVG(iif(Mid(日期,5,2)='02',平均,0)) as 2月,
AVG(iif(Mid(日期,5,2)='03',平均,0)) as 3月,
AVG(iif(Mid(日期,5,2)='04',平均,0)) as 4月,
AVG(iif(Mid(日期,5,2)='05',平均,0)) as 5月,
AVG(iif(Mid(日期,5,2)='06',平均,0)) as 6月,
AVG(iif(Mid(日期,5,2)='07',平均,0)) as 7月,
AVG(iif(Mid(日期,5,2)='08',平均,0)) as 8月,
AVG(iif(Mid(日期,5,2)='09',平均,0)) as 9月,
AVG(iif(Mid(日期,5,2)='10',平均,0)) as 10月,
AVG(iif(Mid(日期,5,2)='11',平均,0)) as 11月,
AVG(iif(Mid(日期,5,2)='12',平均,0)) as 12月,
AVG(平均) as 年平均
from T
where Mid(日期,1,4)='2000'
group by 站点
...全文
557 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
cdq872 2012-02-29
  • 打赏
  • 举报
回复
回楼上:没有这种情况。

做了个实验:COUNT(Mid(日期,5,2)='01') as 天数 得到2000年的'01'为366个,奇怪。
kaikai_kk 2012-02-28
  • 打赏
  • 举报
回复
很讨厌这种用中文来命名字段的方法
lzg827 2012-02-28
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 cdq872 的回复:]
日期为8为字符型,平均为数值型,计算出来只有年平均是对的,各月的都不对,数据当中个月数据都是完整的。
[/Quote]
另外,有没有可能某些天的日期类型出现2000101这种不标准的,截取的时候自然无法算到1月份,但会正确算到2000年的平均值。
只是举个例子哈,需要你一步一步排查。
lzg827 2012-02-28
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 cdq872 的回复:]
日期为8为字符型,平均为数值型,计算出来只有年平均是对的,各月的都不对,数据当中个月数据都是完整的。
[/Quote]
楼主,你直接用下面的语句算一个月的总和,再计算平均值,一步一步检查到底是哪里错了。
没你手上的数据,只能猜了。。。。但这个方法应该是有效的。
select sum(Mid(日期,5,2)='01') from T where Mid(日期,1,4)='2000'
cdq872 2012-02-28
  • 打赏
  • 举报
回复
日期为8为字符型,平均为数值型,计算出来只有年平均是对的,各月的都不对,数据当中个月数据都是完整的。
lzg827 2012-02-27
  • 打赏
  • 举报
回复
这字段设计的。。。。日期索引全部无效,任何查询要遍历全表。。。
有可能是数据问题,比如上个月的算到这个月了。。。。
还是拉出数据,具体计算几个月就明白了
erhan 2012-02-27
  • 打赏
  • 举报
回复
数据个数与当月的天数不一致导致的吧。

2,498

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧