回 帖 发 新 帖 刷新版面

主题:[请教] 以表1中编号为关键字,统计表2中相同编号的数量的SQL语句如何写?

表1中有字段BH(编号),以该BH为关键字,统计表2中相同编号的数量,也就是对表2中的SL求和,再把求和结果写入表1的N_SL。
SQL语句如应何写?十分感谢!

回复列表 (共33个回复)

沙发

先将表2 分组汇总到临时表
再以临时表的结果用update修改表1的字段

板凳

[quote]先将表2 分组汇总到临时表
再以临时表的结果用updata 修改表1的字段[/quote]
蛤蟆跳井,“不懂”![em66]

3 楼

请先研究一下
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 楼

谢谢wzxc老弟关注和相助,我们共同等,会有高人出现的。

5 楼

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 楼

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 楼

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 楼

update 表1 set n_sl = (select sum(n_sl) from 表2 where bh = 表1.bh)
这应该是最简捷的吧.

9 楼

你知道你上面那句有啥影响么?。。。
数据一多 你全部UPDATE?对UPDATE不过滤 反而对UPDATA的结果过滤?
倘若原来那表1 的数量原来就有值 ,且某个BH不存在于表2 ,你直接也把他UPDATE为0?

10 楼

多谢各位坛友关注和回帖,待本人理解和使用后,感觉哪种方式更好再评分啊。再次感谢!

我来回复

您尚未登录,请登录后再回复。点此登录或注册