Foxtable(狐表)用户栏目专家坐堂 → [求助]显示指定列重复值的行


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

主题:[求助]显示指定列重复值的行

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


加好友 发短信
等级:五尾狐 帖子:1140 积分:11255 威望:0 精华:0 注册:2017/9/26 16:30:00
[求助]显示指定列重复值的行  发帖心情 Post By:2021/9/10 16:37:00 [只看该作者]

老师好!

想筛选出[原审法院]、[原审案号]都相同的行,实际是有这类行,但是没有显示出来,老师给看看代码是哪里的问题?

谢谢!

 

Dim idx As String = "-1,"
Dim idx_temp As String = ""
Dim pdr As DataRow = Nothing
Dim count As Integer = 0
Dim cs As String = "原审法院,原审案号"
For Each dr As DataRow In DataTables("数据表").SQLSelect("", cs)
   
    Dim flag As Boolean = False
    If pdr IsNot Nothing Then
        For Each c As String In cs.split(",")
            If pdr(c) <> dr(c) Then
                flag = True
                Exit For
            End If
        Next
    End If
    If flag Then
        If count > 1 Then
            idx &= idx_temp
        End If
        count = 1
        idx_temp = ""
    Else
        count += 1
    End If
    idx_temp &= dr("_Identify") & ","
    pdr = dr
Next

If count > 1 Then
    idx &= idx_temp
End If

Tables("数据表_table1").filter = "_Identify in (" & idx.trim(",") & ")"


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


加好友 发短信
等级:狐神 帖子:4649 积分:33901 威望:0 精华:0 注册:2008/8/31 22:44:00
  发帖心情 Post By:2021/9/10 16:50:00 [只看该作者]

Tables("数据表_table1").DuplicateValuesFilter({"原审法院","原审案号"})


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


加好友 发短信
等级:超级版主 帖子:107739 积分:548028 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/9/10 16:51:00 [只看该作者]

最新版有多列重复筛选功能了:http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=171144


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


加好友 发短信
等级:五尾狐 帖子:1140 积分:11255 威望:0 精华:0 注册:2017/9/26 16:30:00
  发帖心情 Post By:2021/9/13 11:32:00 [只看该作者]

谢谢蓝老师!

如果数据没有加载,上面的方法就筛选不出来。

老师帮忙写个sql语句吧: 加载出[原审法院]、[原审案号]都相同的行。

 

Dim cmd As new SQLCommand
cmd.C
Dim dt As DataTable
cmd.CommandText = "Se lect * From {数据表} Where [_Identify] Is null          "


DataTables("数据表").Load()    '重新加载表


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


加好友 发短信
等级:超级版主 帖子:107739 积分:548028 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/9/13 11:49:00 [只看该作者]

试试

Select * From {数据表} where [原审法院]+[原审案号] in(select [原审法院]+[原审案号] from (select [原审法院],[原审案号],count(1) as cnt from {数据表} group by [原审法院],[原审案号]) as a where cnt > 1)

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


加好友 发短信
等级:五尾狐 帖子:1140 积分:11255 威望:0 精华:0 注册:2017/9/26 16:30:00
  发帖心情 Post By:2021/9/13 13:47:00 [只看该作者]

谢谢蓝老师!

我在执行sql窗口里运行代码,显示的数据没问题,怎样加载到窗口表里显示它?


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


加好友 发短信
等级:超级版主 帖子:107739 积分:548028 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/9/13 13:51:00 [只看该作者]


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


加好友 发短信
等级:五尾狐 帖子:1140 积分:11255 威望:0 精华:0 注册:2017/9/26 16:30:00
  发帖心情 Post By:2021/9/13 16:34:00 [只看该作者]

蓝老师,我用窗口的副本表来显示Select出的数据,因为Fill帮助中说是跨表加载,因此我用的是DataSource。但是这样显示的是原始表的所有列,并且再点击窗口中的其他加载按钮,也没反应了...是不是绑定后还要解除绑定?

 

Dim cmd As new SQLCommand
cmd.C
Dim dt As DataTable
cmd.CommandText = "Select * From {数据表} where [原审法院]+[原审案号] in(select [原审法院]+[原审案号] from (select [原审法院],[原审案号],count(1) as cnt from {数据表} group by [原审法院],[原审案号]) as a where cnt > 1)
dt = cmd.ExecuteReader()
Tables("数据管理_table1").DataSource = dt

 

直接用LoadFilter 会报错,为什么?
Dim Filter As String
Filter = "Select * From {数据表} where [原审法院]+[原审案号] in(select [原审法院]+[原审案号] from (select [原审法院],[原审案号],count(1) as cnt from {数据表} group by [原审法院],[原审案号]) as a where cnt > 1)  "
DataTables("数据表").LoadFilter = Filter
DataTables("数据表").Load()    '重新加载表


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


加好友 发短信
等级:超级版主 帖子:107739 积分:548028 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/9/13 16:44:00 [只看该作者]

LoadFilter和完整sql没有半毛钱关系:http://www.foxtable.com/webhelp/topics/1928.htm

再说设置DataSource后,窗口表就是另外一个独立的表,和DataTables("数据表")也没有半毛钱的关系

重新加载数据可以这样:dataTables("数据管理_table1").load

或者重新调用上面的第一段代码

 回到顶部