CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C++ Builder >  数据库及相关技术

又是一个数据表的问题????

楼主xiaozerong(木头人)2003-06-01 23:45:32 在 C++ Builder / 数据库及相关技术 提问

我有两个结构一样的表,表A和表B.     比如表A有如下记录:  
   
      编号         金额  
      0001         54      
      0001         89  
      0001         454  
      0001         875  
      0002         787  
      0002         464  
      0003         453  
  (同一个编号有多条记录)  
   
   
  表B有如下记录:  
     
      编号         金额  
      0001         0  
      0002         5  
      0003         0  
  (同一个编号只有一条记录)  
   
   
  怎样实现把表A中同一个编号的记录的金额加总起来,再存到表B的金额字段中,两个表中的记录都不少,所以要考虑到速度的问题。  
  我是用Query的,(Paradox数据库) 问题点数:40、回复次数:5Top

1 楼domustdo(大头)回复于 2003-06-02 00:55:08 得分 10

你的表A中的编号是按照非递减顺序排列的么?  
  如果是,可能快一点的办法是同一个编号的计算后并赋值给B表后,在当前位置做个标记,下次从这个标记开始计算另一个编号的,这样不用从头来过。Top

2 楼runnerrunning(千寻失业ing&那是我所不能了解的事)回复于 2003-06-02 01:42:25 得分 30

select   编号   ,sum(金额)   from   表A   group   by   编号;  
  然后写入表B  
   
  select   a1   ,sum(a2)   from   a11   group   by   a1;  
  如果支持insert   ...select...就更简单  
   
  insert   into   a11   select   a1   ,sum(a2)   from   a11   group   by   a1;  
  insert   into   表B   select   编号   ,sum(金额)   from   表A   group   by   表A.编号;  
   
  Top

3 楼xiaozerong(木头人)回复于 2003-06-02 02:03:41 得分 0

上面的两位先谢过了;  
   
  To   domustdo(大头):  
  请问“在当前位置做个标记”怎么做啊?  
   
  To   runnerrunning(将程序进行到底)  
   
  我的意思是:把表A中同一个编号的记录的金额加总起来,然后用这个加起来的值  
  来更新表B中这一个编号的金额的值,而并非新插入一条记录。  
  比如:  
  表A编号为0001的四条记录加起来后等于1472,然后到表B中找到编号0001的记录,把它的金额修改为1472。Top

4 楼runnerrunning(千寻失业ing&那是我所不能了解的事)回复于 2003-06-02 02:24:19 得分 0

这个更简单:  
  update   a11_copy   set   a11_copy.a2   =   (select   sum(a11.a2)   from   a11   where   a11_copy.a1   =   a11.a1);  
   
  你把all_copy改为表B  
  a11改为   表A  
  a1改为编号    
  a2改为金额  
  Top

5 楼runnerrunning(千寻失业ing&那是我所不能了解的事)回复于 2003-06-02 02:24:50 得分 0

一句话就成功  
  好累,要睡了。。。。Top

相关问题

  • 又一个愚蠢问题!数据表修改。
  • access2000怎么把隐藏了的数据表又显示出来?
  • MySql是不是只能用命令行才能建数据表?
  • SQL SERVER2000中数据表是不是有隐藏的?
  • 如何检测数据表中某个字段是否存在?
  • 打开数据表是错误:Incorrect syntax near 'form'?
  • 怎么判断数据表中某个字段是否存在?
  • PB6.5中判断数据表中某个字段是否存在
  • 请问如何查询数据库(注意:不是数据表)?
  • 请问如何判断某个数据表是否为空?

关键词

  • 记录
  • 金额
  • 表
  • 编号
  • 同一个
  • 改为
  • 标记
  • sum
  • copy
  • group

得分解答快速导航

  • 帖主:xiaozerong
  • domustdo
  • runnerrunning

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo