Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共10 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

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

1楼
baoxyang 发表于:2011/3/3 10:48:00
有一张表A,如何获到列1及列2的值都相同的集合,此集合只取包含列1及列2值相同一条记录?谢谢!!
2楼
狐狸爸爸 发表于:2011/3/3 10:51:00

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

3楼
baoxyang 发表于: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楼
狐狸爸爸 发表于: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
5楼
mr725 发表于: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楼
狐狸爸爸 发表于:2011/3/3 14:34:00

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

 

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

7楼
mr725 发表于: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编辑过]
8楼
mr725 发表于: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楼
狐狸爸爸 发表于: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

10楼
baoxyang 发表于:2011/3/4 8:54:00
谢谢各位的热心帮助,我试试。
共10 条记录, 每页显示 10 条, 页签: [1]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .02344 s, 2 queries.