根据另一个表的数据,求这个表一列的平均值。

zhangwuji154 2011-02-22 05:48:41
一个工程可以有多个控制点,工程所在的经纬度由它的控制点们的经纬度的平均值计算得来。


有两个表,一个"控制点表",一个"工程表"

最初表里的数据都是空,录入人员录入控制点信息,我做了一个触发器,每添加一个控制点,就update一下工程表中经纬度信息。
当然,最保险的做法是。每添加一个控制点,就求该工程下所有控制点的平均值avg。但当时我为了效率!!!!!

我不是用avg函数做的,而我是用

现在工程经度平均值=x
已经添加了多少个控制点的经度=n
新添加进来的控制点的经度=y

(x*n+y)/(n+1)
(当然,还有一些添加为null情况的判断)

这样计算的,当然,在大部分情况下,这个没有问题,但不知道为什么,有时候就是错的



已经录入了很多数据,我不知道哪些是错的
所以我想用avg函数,重置所有工程经纬度,


控制点表
控制点ID 控制点经度 控制点纬度 控制点属于哪个工程的ID


工程表
工程ID 工程经度 工程纬度
...全文
291 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhangwuji154 2011-02-23
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 linares 的回复:]

update g set ? from 工程表 g , (select ?,avg(?) group by ?) av
where g.?=av.?
[/Quote]
嗯,跟我这个问题的结果一样
http://topic.csdn.net/u/20110222/18/40c92d98-89f5-4e8e-91f6-f018c9991957.html


如果我想查,哪些条目是错的,怎么办?
王向飞 2011-02-22
  • 打赏
  • 举报
回复
估计就是null 0 '' 的问题吧
Linares 2011-02-22
  • 打赏
  • 举报
回复
update g set ? from 工程表 g , (select ?,avg(?) group by ?) av
where g.?=av.?
快溜 2011-02-22
  • 打赏
  • 举报
回复
好纠结,那你就用avg算算看哪不对啊。看了半天,没看明白。

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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