Foxtable(狐表)用户栏目专家坐堂 → 关于动态下载的问题请教


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

主题:关于动态下载的问题请教

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


加好友 发短信
等级:六尾狐 帖子:1470 积分:11456 威望:0 精华:0 注册:2013/11/24 22:10:00
关于动态下载的问题请教  发帖心情 Post By:2015/12/14 11:08:00 [显示全部帖子]

我有一个表,因为行数很多,里面有些是重复的,如果我只想下载某个列不重复的值,有没有好点的方法?

 

 

 


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


加好友 发短信
等级:六尾狐 帖子:1470 积分:11456 威望:0 精华:0 注册:2013/11/24 22:10:00
  发帖心情 Post By:2015/12/14 11:56:00 [显示全部帖子]

如果是做未加载数据的datatable的相关统计呢?


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


加好友 发短信
等级:六尾狐 帖子:1470 积分:11456 威望:0 精华:0 注册:2013/11/24 22:10:00
  发帖心情 Post By:2015/12/14 11:59:00 [显示全部帖子]

比如我用loadfilter = 后面要怎么写,如果我的列名是:aa   我想下载出aa列不重复的数据 loadfilter = "aa= ?

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


加好友 发短信
等级:六尾狐 帖子:1470 积分:11456 威望:0 精华:0 注册:2013/11/24 22:10:00
  发帖心情 Post By:2015/12/17 17:05:00 [显示全部帖子]

大红袍老师

 

你这个方法不行啊,aa是字符列,要怎么才行呢?


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


加好友 发短信
等级:六尾狐 帖子:1470 积分:11456 威望:0 精华:0 注册:2013/11/24 22:10:00
  发帖心情 Post By:2015/12/18 9:26:00 [显示全部帖子]

大红袍老师

 

     我这个数据是在窗口中使用的,我的情况是这样。数据全部来源于 表A   要求不重复的列名为:AA 是字符列。

我的窗口名称为:数据分析    其中有表控件:table1 . 我先是用代码把 table 和 表A 绑定,代码如下:

Tables("数据分析_Table1").Fill("S elect * F rom {表A} Where _Identify Is null","b",True)

 

然后因为数据量比较多,我采用分页加载的方式,代码如下:

With Tables("数据分析_Table1").DataTable
    .LoadFilter = ""
    .LoadTop = 30
    .LoadOver = "_Identify"
    .LoadReverse = True
    .LoadPage = 0
    .Load()
End With

如果下载条件是:"" 是没有问题的,但现在我想要下载的是不重复的aa列,loadfilter = ?

这个要怎么写?多谢!

 

 


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


加好友 发短信
等级:六尾狐 帖子:1470 积分:11456 威望:0 精华:0 注册:2013/11/24 22:10:00
  发帖心情 Post By:2015/12/18 11:58:00 [显示全部帖子]

大红袍老师

 

不好意思,我基础不好!

我用你的方法:

DataTables("表A").loadfilter = "第一列 in (Select 第一列 f rom {表A} group by 第一列 having count(*) = 1)"
DataTables("表A").Load

 

Output.show(Tables("表A").Rows.Count)

 

用另外一个方法:

Dim Products As List(Of String)
Products = DataTables(“表A”).SQLGetValues("第一列")

 

Output.show(Products.Count)

 

为什么结果不一样,第一个结果是:16万多       第二个结果是:28万多?

 


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


加好友 发短信
等级:六尾狐 帖子:1470 积分:11456 威望:0 精华:0 注册:2013/11/24 22:10:00
  发帖心情 Post By:2015/12/18 12:52:00 [显示全部帖子]

DataTables("表A").loadfilter = "第一列 in (Select 第一列 f rom {表A} group by 第一列)"  下载出来的和"" 是一样的。

 

 

 


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


加好友 发短信
等级:六尾狐 帖子:1470 积分:11456 威望:0 精华:0 注册:2013/11/24 22:10:00
  发帖心情 Post By:2015/12/18 14:04:00 [显示全部帖子]

大红袍老师、

 

经过对比我发现了你的DataTables("表A").loadfilter = "第一列 in (Select 第一列 f rom {表A} group by 第一列 having count(*) = 1)" 这个条件是把数据库里只有一个值的下载出来,但有在数据库里,有重新字段的,就不包括里面了。所以,下载出来的都是在数据是库里没有重复的。


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


加好友 发短信
等级:六尾狐 帖子:1470 积分:11456 威望:0 精华:0 注册:2013/11/24 22:10:00
  发帖心情 Post By:2015/12/18 14:23:00 [显示全部帖子]

如果改成:DataTables("表A").loadfilter = "第一列 in (Select 第一列 f rom {表A} group by 第一列 having count(*) >1)"  再加上 DataTables("表A").loadfilter = "第一列 in (Select 第一列 f rom {表A} group by 第一列 having count(*) = 1)"   就对了,但我试了好久,不知道合起来怎么写?能指点一下吗?

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


加好友 发短信
等级:六尾狐 帖子:1470 积分:11456 威望:0 精华:0 注册:2013/11/24 22:10:00
  发帖心情 Post By:2015/12/18 14:49:00 [显示全部帖子]

解决了。多谢!

 回到顶部
总数 11 1 2 下一页