社区
MS-SQL Server
帖子详情
如何写这个存储过程,
kevin_w
2001-12-11 08:41:34
一个公司下属有N个子公司,须统计一些数据,,,
表A如下: 子公司代码 子公司名称 出口量 进口量 ···
com_code com_name ex_num im_num
另一表B 产品编号 进出口标志 ···· (产品编号的前两位为子公司代码)
en_id ie_mark
能否写一存储过程,在表B中按 子公司(即产品编号前两位)及进出口标志 统计出所有产品的总的 进口量出口量,再到表A 中更新其中数据
...全文
112
11
打赏
收藏
如何写这个存储过程,
一个公司下属有N个子公司,须统计一些数据,,, 表A如下: 子公司代码 子公司名称 出口量 进口量 ··· com_code com_name ex_num im_num 另一表B 产品编号 进出口标志 ···· (产品编号的前两位为子公司代码) en_id ie_mark 能否写一存储过程,在表B中按 子公司(即产品编号前两位)及进出口标志 统计出所有产品的总的 进口量出口量,再到表A 中更新其中数据
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
kevin_w
2001-12-12
打赏
举报
回复
.....
kevin_w
2001-12-12
打赏
举报
回复
a 表结构如下
子公司代码 子公司名 出口量 进口量 ...
com_code com_name ex_num im_num ...
01 驻北京公司 NULL NULL ...
02 驻上海公司 NULL NULL ...
. . .
B 表结构如下
产品编号 进出口标志 ...
en_id ie_mark ...
0100023 I
0200212 I
0122222 I
0111111 E
0221111 I
...
EN_ID 的前两位即为 COM_CODE 出口量即为 所有IE_MARK=E的数据
现要写一存储过程分别统计 子公司代码为 01 02 03 ... 的进出口量,然后写入A表
kevin_w
2001-12-12
打赏
举报
回复
不好意思,未说清楚,进出口数量并不是表示某项产品的进出口总数,而是指所有该子公司内产品的进出口 次数 ,,相当于求B表中符合条件的 COUNT(*) ,
kevin_w
2001-12-12
打赏
举报
回复
不好意思,未说清楚,进出口数量并不是表示某项产品的进出口总数,而是指所有该子公司内产品的进出口次数,,相当于求B表中符合条件的 COUNT(*)
kevin_w
2001-12-12
打赏
举报
回复
不好意思,未说清楚,进出口数量并不是表示某项产品的进出口总数,而是指所有该子公司内产品的进出口次数,,相当于求B表中符合条件的 COUNT(*)
昵称被占用了
2001-12-12
打赏
举报
回复
写了两次表结构都没有写B表的进出口数量字段(第一次回答时用Num),难道没有这个字段?!
试过上面语句没有?加个过程头不就是可以一次更新A表的所有子公司,再从A表查询不就行了?
kevin_w
2001-12-12
打赏
举报
回复
循环处理是可以实现,不过数据量比较大,实现的速度很慢,能否有更有效的办法呢?
panther_totem
2001-12-12
打赏
举报
回复
你就用游标,对B表的数据一条一条的处理,根据en_id的前两个字符和ie_mark来对A表的数据进行UPDATE,修改其相应的ex_num 和 im_num,循环处理完了,ex_num 和 im_num不就累加得到了你需要的结果了。
昵称被占用了
2001-12-11
打赏
举报
回复
如果A表有所有子公司 AND B表有所有子公司 就可以!
kevin_w
2001-12-11
打赏
举报
回复
TO:Haiwer(海阔天空)
这样可以 统计 出所有 子公司的数据??好象不行···
昵称被占用了
2001-12-11
打赏
举报
回复
update a
set ex_num=(select sum(Num) from b
where en_id like rtrim(a.com_code)+'%' and ie_mark='e'),
im_num=(select sum(Num) from b
where en_id like rtrim(a.com_code)+'%' and ie_mark='I')
呵呵,示意性的!
SQL Server数据库基础知识——数据库
存储过程
怎么
写
SQL Server数据库基础知识
存储过程
概述 什么是
存储过程
?
存储过程
的种类 如何创建、修改、删除、调用
存储过程
?...可以用一个“execute
存储过程
名 参数”命令来调用
存储过程
。 2.
存储过程
的种类
10分钟学会
写
一个简单的Mysql
存储过程
使用
存储过程
的目的是将常用或复杂的工作预先用 SQL 语句
写
好并用一个指定名称存储起来,这个过程经编译和优化后存储在数据库服务器中,因此称为
存储过程
。当以后需要数据库提供与已定义好的
存储过程
的功能相同的...
MySQL中的
存储过程
(详细篇)
由MySQL5.0 版本开始支持
存储过程
。 如果在实现用户的某些需求时,需要编
写
一组复杂的SQL语句才能实现的时候,那么我们就可以将这组复杂的SQL语句集提前编
写
在数据库中,由JDBC调用来执行这组SQL语句。把编
写
在...
oracle如何
写
储存过程,编
写
Oracle
存储过程
的介绍
如果你在上一个银行的目中,当我们接到编
写
关于Oracle
存储过程
的任务时,我们会涉及到某些使用CALLABLE的接口调用
存储过程
的经验,一时不知如何下手,我查阅了一些资料,通过实践发现编
写
Oracle
存储过程
是非常不容易...
什么是
存储过程
?为什么要
写
存储过程
一.什么是
存储过程
存储过程
,百度百科上是这样解释的,
存储过程
(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,存储在数据库中...为什么要
写
存储过程
1.效率高
存储过程
编译一次后..
MS-SQL Server
34,623
社区成员
254,600
社区内容
发帖
与我相关
我的任务
MS-SQL Server
MS-SQL Server相关内容讨论专区
复制链接
扫一扫
分享
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章