SQL server中遍历所有行的循环表达式怎么写 5

数据库中有两个表,(不能上传图片郁闷),表一有两个字段:编号(varchar50)、总数(int),表二有两个字段:编号(varchar50)、数量(int),表一中的编... 数据库中有两个表,(不能上传图片郁闷),表一有两个字段:编号(varchar 50)、总数(int),表二有两个字段:编号(varchar 50)、数量(int),表一中的编号的每一条记录依次是这样的:001、001001、001001001、001001001001、001001001002、001001001003、……、001002001001、……、002、002002、……,表一中总数待求;表二中编号的每一条记录依次是这样的规律:001、001001、001001001、001001001001、001001001001001、001001001001002、……002、002001、……,也就是说三个数字算一层,表二中的有5层,比表一中多一层,001001是001的下级单位,001001001是001001的下级,同时也是001的下级,即只要前面几位数字相同,那么数字多的就是数字少的下级,现在要求表一中的总数,比如001对应的总数就是表二中所有001开头的对应的“数量”相加的和,这个循环表达式用SQL语句怎么写啊,能不能具体点,先谢谢各位大哥了,急等啊!
因为记录行有很多,表一中“编号”:001,对应总数是:select sum(数量) from 表二 where 编号 like '001%'
这样是不是就要一条一条的去算啊,还得算001001、001001001、……、002、……,能不能循环一下,然后自动update进去的啊?
展开
 我来答
ThinkIBM
2010-12-10 · TA获得超过5289个赞
知道大有可为答主
回答量:3263
采纳率:0%
帮助的人:5490万
展开全部
你这样试下:
UPDATE 表1 SET 表1.总数=SUM(表2.数量) FROM 表1, 表2 WHERE CHARINDEX(表2.编号, 表1.编号)=1

表二中所有001开头的对应的“数量”相加的和
select sum(数量) from 表二 group by left(编号,3)
牧之卉0j1
2010-12-10 · TA获得超过1151个赞
知道大有可为答主
回答量:1689
采纳率:0%
帮助的人:1747万
展开全部
像这种情况直接group by left(编号,3)就可以了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
pro_str
2010-12-10 · 超过38用户采纳过TA的回答
知道小有建树答主
回答量:98
采纳率:0%
帮助的人:104万
展开全部
用游标吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式