主题:[请教] 以表1中编号为关键字,统计表2中相同编号的数量的SQL语句如何写?
北京惬意
[专家分:1330] 发布于 2010-01-24 09:24:00
表1中有字段BH(编号),以该BH为关键字,统计表2中相同编号的数量,也就是对表2中的SL求和,再把求和结果写入表1的N_SL。
SQL语句如应何写?十分感谢!
最后更新于:2010-01-25 13:02:00
回复列表 (共33个回复)
沙发
wzxc [专家分:9440] 发布于 2010-01-24 09:30:00
先将表2 分组汇总到临时表
再以临时表的结果用update修改表1的字段
板凳
北京惬意 [专家分:1330] 发布于 2010-01-24 09:34:00
[quote]先将表2 分组汇总到临时表
再以临时表的结果用updata 修改表1的字段[/quote]
蛤蟆跳井,“不懂”![em66]
3 楼
wzxc [专家分:9440] 发布于 2010-01-24 09:59:00
请先研究一下
SELECT - SQL 命令 - GROUP BY 子句
和
UPDATE - SQL 命令
select bh,sum(shuliang) from biao2 group by bh into cursor tempbiao
update biao1 set biao1.N_SL=tempbiao.shuliang .....&&后面的条件你慢慢地跳吧[em66][em66]
2楼的命令错了,已改正。
抛砖引玉吧,也许有更好的方法。我的sql也不咋地!
4 楼
北京惬意 [专家分:1330] 发布于 2010-01-24 10:07:00
谢谢wzxc老弟关注和相助,我们共同等,会有高人出现的。
5 楼
Vii [专家分:1130] 发布于 2010-01-24 11:25:00
update table1 set table1.n_sl=b.sl from table1 a,(select bh,sum(sl) as sl from table2 group by bh) b where a.bh=b.bh
6 楼
狐说八道 [专家分:860] 发布于 2010-01-24 11:55:00
UPDATE 表1 SET N_SL = (select sl from (SELECT bh, sum(sl) sl FROM 表2 a GROUP BY a.bh) a WHERE 表1.bh=a.bh)
7 楼
So_Show [专家分:470] 发布于 2010-01-24 13:02:00
update 表一 set a.N_SL=b.数量
from 表一 a inner join (select BH,sum(数量) as 数量 from 表二 group by BH) b on a.BH=b.BH
8 楼
afoxer [专家分:360] 发布于 2010-01-24 13:48:00
update 表1 set n_sl = (select sum(n_sl) from 表2 where bh = 表1.bh)
这应该是最简捷的吧.
9 楼
So_Show [专家分:470] 发布于 2010-01-24 16:42:00
你知道你上面那句有啥影响么?。。。
数据一多 你全部UPDATE?对UPDATE不过滤 反而对UPDATA的结果过滤?
倘若原来那表1 的数量原来就有值 ,且某个BH不存在于表2 ,你直接也把他UPDATE为0?
10 楼
北京惬意 [专家分:1330] 发布于 2010-01-25 07:05:00
多谢各位坛友关注和回帖,待本人理解和使用后,感觉哪种方式更好再评分啊。再次感谢!
我来回复