Foxtable(狐表)用户栏目专家坐堂 → 求助,如何获取表中有重复值集合?


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

主题:求助,如何获取表中有重复值集合?

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


加好友 发短信
等级:狐精 帖子:3313 积分:23146 威望:0 精华:1 注册:2009/3/31 11:25:00
求助,如何获取表中有重复值集合?  发帖心情 Post By:2011/3/3 10:48:00 [只看该作者]

有一张表A,如何获到列1及列2的值都相同的集合,此集合只取包含列1及列2值相同一条记录?谢谢!!

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/3/3 10:51:00 [只看该作者]

DataTables("sss").Select("第一列 = 地二列")


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


加好友 发短信
等级:狐精 帖子:3313 积分:23146 威望:0 精华:1 注册:2009/3/31 11:25:00
  发帖心情 Post By:2011/3/3 11:42:00 [只看该作者]

sorry,可能没有表述清楚吧,误解了。

例如:

   列1    列2    列2

   a       1         33

   b       2         44

   c       2          55

   c       2           66

   d       3           77

   d       3          88

   d       4          99

想得到结果是c,2及d,3


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/3/3 12:00:00 [只看该作者]

Dim Lst1  As List(of String)= DataTables("表A").GetUniqueValues("第一列")
Dim Lst2  As List(of String)= DataTables("表A").GetUniqueValues("第二列")
For Each v As String In Lst2
    If Lst1.Contains(v) = False Then
        lst1.Add(v)
    Next
Next

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2011/3/3 14:26:00 [只看该作者]

以下是引用狐狸爸爸在2011-3-3 12:00:00的发言:
Dim Lst1  As List(of String)= DataTables("表A").GetUniqueValues("第一列")
Dim Lst2  As List(of String)= DataTables("表A").GetUniqueValues("第二列")
For Each v As String In Lst2
    If Lst1.Contains(v) = False Then
        lst1.Add(v)
    Next
Next

这个不对呀,不是第一列=第二列的行,而是:第一列重复 且 第二列重复的行


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/3/3 14:34:00 [只看该作者]

呵呵,是的,楼主要的是重复的,我给的是不重复的。

 

图片点击可在新窗口打开查看


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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2011/3/3 14:47:00 [只看该作者]

我的复杂些, 看看楼主是不是要这个结果:

'''
Tables("表").Select(0,Tables("表").cols("列1").Index)
Syscmd.Filter.ShowSameValues()
Dim urp  As List(of String)= DataTables("表").GetUniqueValues("","列2")

Dim rp,rp1 As String
rp1 = ","

For i As Integer = 0 To Tables("表").count -1
    Dim r As Row = Tables("表").Rows(i)
    Dim drs As List(Of DataRow)
    drs = DataTables("表").Select("[列2] = '" & _
    Tables("表").Rows(i)("列2") & "' and [列1] = '" & Tables("表").Rows(i)("列1") & "'")
    If drs.count >= 2 And rp1.contains("" & Tables("表").Rows(i)("列2") & "") = False
        rp1 = rp1 & "," & Tables("表").Rows(i)("列2")

        output.show(Tables("表").Rows(i)("列1") & "  "  & Tables("表").Rows(i)("列2"))
    End If
Next

 

还没有完全对····

[此贴子已经被作者于2011-3-3 15:33:26编辑过]

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2011/3/3 16:35:00 [只看该作者]

这样ok啦:

 

'''
Tables("表").Select(0,Tables("表").cols("列1").Index)
Syscmd.Filter.ShowSameValues()
Dim rp1 As String
rp1 = ","
For i As Integer = 0 To Tables("表").count -1
    Dim r As Row = Tables("表").Rows(i)
    Dim drs As List(Of DataRow)
    drs = DataTables("表").Select("[列2] = '" & _
    Tables("表").Rows(i)("列2") & "' and [列1] = '" & Tables("表").Rows(i)("列1") & "'")
    For Each dr As DataRow In drs
        If  rp1.contains("," & CurrentTable.Rows(i)("列1")) = False
            rp1 = rp1 & "," & CurrentTable.Rows(i)("列1")
            output.show(CurrentTable.Rows(i)("列1") & "  "  & CurrentTable.Rows(i)("列2"))
        End If
        Exit For
    Next
Next


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/3/3 16:55:00 [只看该作者]

呵呵,我也来一个:

 

Dim dt As DataTable = DataTables("表A")
Dim Lst1  As List(of String) = dt.GetUniqueValues("","第一列")
Dim Lst2  As List(of String) = dt.GetUniqueValues("","第二列")
Dim lst3 AS New List(of String) '用于保存重复值
For Each v As String In Lst1
    If dt.Compute("Count([_Identify])", "第一列 = '" & v & "'") > 1 Then
        lst3.Add(v)
    End If
Next
For Each v As String In Lst2
    If dt.Compute("Count([_Identify])","第二列 = '" & v & "'") > 1 And lst3.Contains(v) = False Then
        lst3.Add(v)
    End If
Next


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


加好友 发短信
等级:狐精 帖子:3313 积分:23146 威望:0 精华:1 注册:2009/3/31 11:25:00
  发帖心情 Post By:2011/3/4 8:54:00 [只看该作者]

谢谢各位的热心帮助,我试试。

 回到顶部