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

高手请进!

楼主mailxin()2005-02-01 08:56:20 在 VB / 基础类 提问

有2个问题  
  1、一个几千的记录集,用那种方法取得记录数更快  
  (1)Do   While   Not   rs.EOF  
                i   =   i   +   1  
                rs.MoveNext  
            Loop  
  (2)rs.MoveFirst  
            If   Not   rs.EOF   Then  
                  i   =   rs.RecordCount  
            End   If  
  2.一张合同表,合同编号ID(不惟一),可有多条ID相同合同,合同签订日期Date,合同起始日期startdate,合同结束日期enddate,如何用sql语句获得合同编号相同数量〉1的合同数量 问题点数:20、回复次数:15Top

1 楼jinjazz(近身剪)回复于 2005-02-01 09:03:53 得分 15

1.应该是一样的,都是O(n)数量级的  
  2.  
  select   *   from   xxx   where   id   in(select   id   from   xxx   group   by   id(having(count(*)>1)))Top

2 楼mailxin()回复于 2005-02-01 09:07:55 得分 0

1、如果数量更多呢,几万,几十万,是不是前一个更快Top

3 楼jinjazz(近身剪)回复于 2005-02-01 09:09:29 得分 0

i   =   rs.RecordCount??好像不对吧Top

4 楼mailxin()回复于 2005-02-01 09:15:06 得分 0

1、没错阿  
  2.  
  select   *   from   xxx   where   id   in(select   id   from   xxx   group   by   id(having(count(*)>1)))  
  应该没有括号吧  
  select   *   from   xxx   where   id   in(select   id   from   xxx   group   by   id   having(count(*)>1))  
  Top

5 楼liuxiaoyi666(MSMVP 小猪妹荣誉马甲之八卦兔子)回复于 2005-02-01 09:16:12 得分 2

1.应该是2快理由如下:ado操作返回,而你一个一个加的话是在vb程序中而且还要调用ado,作为双重负担要慢的  
   
  jinjazz考虑问题不光要看数据结构还有要看接口的Top

6 楼6742(^_^)回复于 2005-02-01 09:17:16 得分 1

(1)Do   While   Not   rs.EOF  
                i   =   i   +   1  
                rs.MoveNext  
            Loop  
  应该快一点的,VB处理循环的速度应该比处理IF判断语句的速度快Top

7 楼jinjazz(近身剪)回复于 2005-02-01 09:18:40 得分 0

>>i   =   rs.RecordCount??好像不对吧  
   
  我开始没有看到这一句Top

8 楼mailxin()回复于 2005-02-01 09:18:42 得分 0

很少用having,学习ing,哈,谢谢了,希望更多高手进来发表1的意见Top

9 楼liuxiaoyi666(MSMVP 小猪妹荣誉马甲之八卦兔子)回复于 2005-02-01 09:19:51 得分 0

select   *   from   xxx   where   id   in(select   id   from   xxx   group   by   id   having(count(*)>1)))  
   
  楼主你数数括号是不是双数  
  Top

10 楼ljhdi( )回复于 2005-02-01 09:26:45 得分 1

嘿嘿  
   
  第一个应该快些  
   
  弱弱得问一句  
  得到recordcount一定要循环吗?  
  Top

11 楼mailxin()回复于 2005-02-01 09:34:53 得分 0

2、如果2加入条件month(date)=month(getdate())   and   date<getdate(),应如何处理,即要获得  
  当月签订合同以前存在相同合同ID的数量Top

12 楼mailxin()回复于 2005-02-01 09:47:10 得分 0

2、哈,2解决地说Top

13 楼catheryang(海杨)回复于 2005-02-01 13:39:39 得分 1

rs.movefirst  
  rs.movelast  
  i=rs.recordcount  
  Top

14 楼starwalker(飞)回复于 2005-02-01 13:55:00 得分 0

1、  
  为什么不用SELECT   COUNT(*)   FROM   ...?Top

15 楼mailxin()回复于 2005-02-01 14:12:20 得分 0

1、当然1后面是要用到记录集,否则就不必这样了,没有人对1发表自己的看法吗Top

相关问题

  • 请进!请进?
  • 请进,请进....
  • 请进
  • 请进。。。。。。。。。
  • 请进
  • 请进
  • 请进
  • 请进
  • 请进
  • 请进

关键词

  • date
  • 合同
  • rs
  • eof
  • 数量
  • 日期
  • 应该
  • from xxx
  • group
  • count

得分解答快速导航

  • 帖主:mailxin
  • jinjazz
  • liuxiaoyi666
  • 6742
  • ljhdi
  • catheryang

相关链接

  • Visual Basic类图书
  • Visual Basic类源码下载

广告也精彩

反馈

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