Foxtable(狐表)用户栏目专家坐堂 → [求助]关于查询效率方面的问题


  共有2622人关注过本帖树形打印复制链接

主题:[求助]关于查询效率方面的问题

帅哥哟,离线,有人找我吗?
paniwangji
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:181 积分:1620 威望:0 精华:0 注册:2013/4/25 14:05:00
[求助]关于查询效率方面的问题  发帖心情 Post By:2014/12/9 11:14:00 [显示全部帖子]

我想实现的效果如下:
第一列  - 日期
第二列  - 查询条件
第三列  - 名称

2014-1-4    8      A
2014-1-5    8.5   A
2014-1-6    9     A
2014-1-7    6     A
2014-1-10  5     A
2014-1-11  8     A
2014-1-12  6     A
2014-1-13  10   A
2014-1-14  7     A
2014-1-18  8     A
2014-1-19  7     A
2014-1-22  8     A
2014-1-4    18    B
2014-1-5    16   B
2014-1-8    29   B
2014-1-9    36   B
2014-1-10  25   B
2014-1-11  18   B
2014-1-12  26   B
2014-1-13  19   B
2014-1-14  17   B
2014-1-18  18   B
2014-1-19  17   B
2014-1-22  18   B


上面是我截取的部分数据,我需要根据数据的顺序特征查询到是属于哪个名称的值,并能告诉我时间段;
例:已知  18,16,29  这3个数,需要结果为:“B :2014-1-4至2014-1-8” 


因为日期列不是连贯日期,目前我用的办法是

Dim drs As New List(of DataRow) = DataTables(Tablename).SQLSelect(“条件一”)

然后在从drs中逐个遍历,每条记录都先判断时间,加1天有没有记录,如果没有就再加1天,直到有记录然后判断记录的值是否符合条件二,以此类推,这样的查询思路,如果数据少的话这样效率还可以,但是目前我的数据有百万条,名称也有几百个,请问有没有更好的思路能让我的查询效率更高一些?

    

[此贴子已经被作者于2014-12-9 11:26:51编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
paniwangji
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:181 积分:1620 威望:0 精华:0 注册:2013/4/25 14:05:00
  发帖心情 Post By:2014/12/9 11:23:00 [显示全部帖子]

数据很简单 就上面3列,但是就是查询起来比较费时间,老师能告诉我一个思路也可以。

 回到顶部
帅哥哟,离线,有人找我吗?
paniwangji
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:181 积分:1620 威望:0 精华:0 注册:2013/4/25 14:05:00
  发帖心情 Post By:2014/12/9 12:47:00 [显示全部帖子]

有点甜老师,我这个是SQL的数据库,日期也不是按照从上到下这样的顺序排列的,而且最麻烦的是很多名称之间的数值都很近似,如果有很多包含 ('18','16','29') 这些数字但日期不是连续的也会被查出来吧。

 回到顶部
帅哥哟,离线,有人找我吗?
paniwangji
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:181 积分:1620 威望:0 精华:0 注册:2013/4/25 14:05:00
  发帖心情 Post By:2014/12/9 13:08:00 [显示全部帖子]

中午刚做了一个例子,大概就是这个效果。例子中有说明,谢谢了!
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:例子.rar

[此贴子已经被作者于2014-12-9 13:11:32编辑过]

 回到顶部