Foxtable(狐表)用户栏目专家坐堂 → 筛选问题


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

主题:筛选问题

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


加好友 发短信
等级:小狐 帖子:394 积分:5991 威望:0 精华:0 注册:2015/2/17 10:18:00
筛选问题  发帖心情 Post By:2017/8/16 15:52:00 [只看该作者]

表A 有 4列

       车号    限重    实际重量  收费员
         :
         :
         :

现在要将同车号但限重有不一致的车辆筛选数来。


(限重对同一台车应是固定值,但有时司机为减少缴费,互换车牌,因而会出现同一车号限重却不一致的问题)
谢谢!

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/8/16 16:07:00 [只看该作者]

Dim dt As Table = Tables("表a")
Dim idxs As String = "'',"
For Each s As String In dt.DataTable.GetValues("第一列")
    Dim cps As List(Of String) = dt.DataTable.GetValues("第二列", "第一列 = '" & s & "'")
    If cps.count > 1 Then
        idxs &= "'" & s & "',"
    End If
Next
dt.filter = "第一列 in (" & idxs.trim(",") & ")"

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


加好友 发短信
等级:小狐 帖子:394 积分:5991 威望:0 精华:0 注册:2015/2/17 10:18:00
  发帖心情 Post By:2017/8/16 16:58:00 [只看该作者]

谢谢老师,请教能否用交叉统计,先把每牌照的车的限重的列出来,然后判断不为零或空格的各列值是否相等,这样是否快些啊,按上面的直接筛选,10万条记录已计算好长时间了。

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/8/16 17:16:00 [只看该作者]

Dim idxs As String = "'',"
Dim pdr As DataRow = Nothing
Dim count As Integer = 0
Dim cs As String = "第一列,第二列"
For Each dr As DataRow In DataTables("表A").Select("", cs)
    Dim flag As Boolean = False
    If pdr IsNot Nothing Then
        If dr("第一列") <> pdr("第一列") Then
            flag = True
        End If
        If flag Then
            count = 1
        Else
            If dr("第二列") <> pdr("第二列") Then
                count += 1
                If count = 2 Then
                    idxs &= "'" & dr("第一列") & "',"
                End If
            End If
        End If
    Else
        count += 1
    End If
    pdr = dr
Next


Tables("表A").Filter = "第一列 In (" & idxs.trim(",") & ")"

 


 回到顶部