vc/MFC + Sql Server2000 开发的数据库系统,连接数据库的时候使用的是ODBC。
数据库中有两个表 A 和 B,通过ID相关联,结构如下:A:(ID为主键) B: (没有主键)
ID 公司名称 生意内容 备注 ID 币值 收付 费用 费用名称
001 公司甲 …… …… 001 RMB 应收 500 运费
002 公司乙 …… …… 001 RMB 应付 200 集卡费
003 公司丙 …… …… 001 USD 应收 100 ……
…… …… …… …… 001 USD 应收 50 ……
…… …… …… …… ……
002 RMB 应付 300 检查费
002 RMB 应付 80 ……
…… …… …… …… ……
003 …… …… …… ……也就是说表A中存储了我公司同另外公司之间生意往来的基本信息,表B中存储了某次生意(通过A中的ID来标识)往来中所涉及到的费用明细。现在需要写一个统计功能,统计某次生意中RMB和USD的利润各是多少。
“利润统计”中用到了LstCtrl控件,该功能我是这样实现的:
1、读取A中的一条记录,插入到LstCtrl中。
2、每读取一条,取得其ID。
3、利用该ID读取B中的数据,并通过if语句对“币值”和“收付”相同的费用进行累加。
4、最后通过加减运算得到RMB、USD的利润,并插入到LstCtrl中。
5、回复到1,如此循环。我这样写出来的统计功能,当记录多的时候速度就会慢了,200条记录大概要15秒。老总觉得太慢,要我想办法改进。小弟苦思不得其解,特来请教!在不改变数据库结构的情况下,请高手提供可以提高统计速度的方法。不知道有没有什么SQL语句,可以一下子得到我需要的统计数据,两三下子的也可以。请指点……学习,关注……谢谢!
数据库中有两个表 A 和 B,通过ID相关联,结构如下:A:(ID为主键) B: (没有主键)
ID 公司名称 生意内容 备注 ID 币值 收付 费用 费用名称
001 公司甲 …… …… 001 RMB 应收 500 运费
002 公司乙 …… …… 001 RMB 应付 200 集卡费
003 公司丙 …… …… 001 USD 应收 100 ……
…… …… …… …… 001 USD 应收 50 ……
…… …… …… …… ……
002 RMB 应付 300 检查费
002 RMB 应付 80 ……
…… …… …… …… ……
003 …… …… …… ……也就是说表A中存储了我公司同另外公司之间生意往来的基本信息,表B中存储了某次生意(通过A中的ID来标识)往来中所涉及到的费用明细。现在需要写一个统计功能,统计某次生意中RMB和USD的利润各是多少。
“利润统计”中用到了LstCtrl控件,该功能我是这样实现的:
1、读取A中的一条记录,插入到LstCtrl中。
2、每读取一条,取得其ID。
3、利用该ID读取B中的数据,并通过if语句对“币值”和“收付”相同的费用进行累加。
4、最后通过加减运算得到RMB、USD的利润,并插入到LstCtrl中。
5、回复到1,如此循环。我这样写出来的统计功能,当记录多的时候速度就会慢了,200条记录大概要15秒。老总觉得太慢,要我想办法改进。小弟苦思不得其解,特来请教!在不改变数据库结构的情况下,请高手提供可以提高统计速度的方法。不知道有没有什么SQL语句,可以一下子得到我需要的统计数据,两三下子的也可以。请指点……学习,关注……谢谢!
解决方案 »
- 在sdk中怎么在主窗口上点击一个按钮弹出子窗口啊???
- 如何写好一个CSpinEdit控件---如何更好的组装两个现有的组件
- 关于CInternetSession OpenURL实际中遇到的问题
- 通过internet接收大的UDP数据包,前面几个正常,之后就收不到了?
- 在Win2000下如何锁定用户的键盘操作?
- 请问这些头文件是干什么用的?权威者优先进入!!!
- 项目外包:有能力者进来。
- 毕业设计,请高手指点一下
- 强烈推荐:《Windows 2000 API 超级宝典》
- 为什么我的钩子只能运行一次?
- 求电子书 北京希望电子出版社出版的《Vsual C++ 编程高手》
- 涉及文字操作的API函数报错
FROM b
GROUP BY id, 币值以上 SQL 仅为随手写的,未经过测试。