以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  请教筛选  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=62384)

--  作者:hbhb
--  发布时间:2014/12/30 20:50:00
--  请教筛选
大师好!请教筛选实例,如实例。
请问如何筛选得出如下要求的行
第一列记录相同,且记录数>=4,第二列不相同且记录数>=2,第三列不相同且记录数>=2的行,结果为第一列记录为1和6的行
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目3.zip


--  作者:有点甜
--  发布时间:2014/12/30 21:11:00
--  
Dim dt As DataTable = DataTables("表A")
For Each c1 As String In dt.GetValues("第一列", "第一列 is not null")
    If dt.GetValues("第二列", "第一列 = \'" & c1 & "\' and 第二列 is not null").count >= 2 Then
        If dt.GetValues("第三列", "第一列 = \'" & c1 & "\' and 第三列 is not null").count >= 2 Then
            msgbox(c1)
        End If
    End If
Next

--  作者:hbhb
--  发布时间:2014/12/30 21:31:00
--  
谢谢!且记录数>=4 的条件是不需要的是吗?
--  作者:有点甜
--  发布时间:2014/12/30 21:36:00
--  

 要

 

Dim dt As DataTable = DataTables("表A")
For Each c1 As String In dt.GetValues("第一列", "第一列 is not null")
    If dt.compute("count(第一列)", "第一列 = \'" & c1 & "\'") >= 4 Then
        If dt.GetValues("第二列", "第一列 = \'" & c1 & "\' and 第二列 is not null").count >= 2 Then
            If dt.GetValues("第三列", "第一列 = \'" & c1 & "\' and 第三列 is not null").count >= 2 Then
                msgbox(c1)
            End If
        End If
    End If
Next


--  作者:hbhb
--  发布时间:2014/12/30 21:38:00
--  
dt.GetValues("第二列", "第一列 = \'" & c1 & "\' and 第二列 is not null")的集合不需要先定义吗?
--  作者:有点甜
--  发布时间:2014/12/30 21:42:00
--  
 不需要,可以直接用。你也可以定义。
--  作者:hbhb
--  发布时间:2014/12/30 21:54:00
--  
谢谢!