Foxtable(狐表)用户栏目专家坐堂 → 请问,菜单里的查询重复项,指的是针对单列,如果针对双列甚至更多列,有快速的命令吗?


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

主题:请问,菜单里的查询重复项,指的是针对单列,如果针对双列甚至更多列,有快速的命令吗?

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/12/10 15:13:00 [显示全部帖子]

 汗,原来这么麻烦。下面代码是取出不重复的数据的。

 

Dim str As String = "第一列,第二列"
Dim idx As String = ""
Dim ary() As String = str.Split(",")
Dim pdr As DataRow = Nothing
Dim count As Integer = 0
For Each dr As DataRow In DataTables("表A").Select("第一列 is not null", str)
    Dim flag As Boolean = False
    For Each a As String In ary
        If pdr IsNot Nothing AndAlso dr(a) <> pdr(a) Then
            flag = True
        End If
    Next
    If flag = False Then
        count += 1
    Else
        If count = 1 Then
            idx &= pdr("_Identify") & ","
        End If
        count = 1
    End If
    pdr = dr
Next

For Each a As String In ary
    If pdr IsNot Nothing AndAlso Tables("表A").Rows(Tables("表A").Rows.count-2)(a) <> pdr(a) Then
        idx &= pdr("_Identify") & ","
    End If
Next

Tables("表A").filter = "_Identify in (" & idx.trim(",") & ")"


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2015/1/20 21:10:00 [显示全部帖子]

看你原帖,或者看下面代码

 

Dim str As String = "第一列,第二列"
Dim idx As String = ""
Dim ary() As String = str.Split(",")
Dim pdr As DataRow = Nothing
Dim count As Integer = 0
For Each dr As DataRow In DataTables("表A").Select("第一列 is not null", str)
    Dim flag As Boolean = False
    For Each a As String In ary
        If pdr IsNot Nothing AndAlso dr(a) <> pdr(a) Then
            flag = True
        End If
    Next
    If flag = False Then
        count += 1
    Else
        If count = 1 Then
            idx &= pdr("_Identify") & ","
        End If
        count = 1
    End If
    pdr = dr
Next

For Each a As String In ary
    If pdr IsNot Nothing AndAlso Tables("表A").Rows(Tables("表A").Rows.count-2)(a) <> pdr(a) Then
        idx &= pdr("_Identify") & ","
    End If
Next

Tables("表A").filter = "_Identify not in (" & idx.trim(",") & ")"


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2015/1/20 21:35:00 [显示全部帖子]

以下是引用mojunming在2015-1-20 21:25:00的发言:

需要同时取出哪些重复记录?编码应该如何修改?

 

什么意思?6楼取出的就是重复的数据啊


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2015/1/20 21:42:00 [显示全部帖子]

 这段不能去掉

 

For Each a As String In ary
    If pdr IsNot Nothing AndAlso Tables("I0_Joint").Rows(Tables("I0_Joint").Rows.count-2)(a) <> pdr(a) Then
        idx &= pdr("JointID") & ","
    End If
Next


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2015/1/21 9:59:00 [显示全部帖子]

 1、Filter,是针对已经加载的数据的。

 

 2、如果要针对没加载的数据,需要重新加载数据

 

DataTables("表A").LoadFilter = "_Identify not in (" & idx.trim(",") & ")"

DataTables("表A").Load


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2015/1/21 10:06:00 [显示全部帖子]

 看12楼

 

 同时,如果这种,建议你用sql语句直接重修加载数据啊。

 

 参考

 

http://www.cr173.com/html/7529_1.html

 

http://www.foxtable.com/help/topics/2721.htm

 


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2015/1/21 14:38:00 [显示全部帖子]

以下是引用mojunming在2015-1-21 14:37:00的发言:

查找两列重复项用SQL语言怎么编,才好?

 

两列合并成一列,比如

 

 s elect 第一列 + '分隔符|' + 第二列 as 组合列 From {表A}


 回到顶部