Foxtable(狐表)用户栏目专家坐堂 → 狐爸:如何排除前面的重复值,留下最后一个。


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

主题:狐爸:如何排除前面的重复值,留下最后一个。

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


加好友 发短信
等级:婴狐 帖子:17 积分:192 威望:0 精华:0 注册:2012/4/20 10:19:00
狐爸:如何排除前面的重复值,留下最后一个。  发帖心情 Post By:2012/4/20 10:40:00 [只看该作者]

以下代码只能排除后面的重复值,如何排除前面的重复值,留下最后一个。

  

Case "库存报表"
      Tables("CK").Sort = "[_Identify] DESC"
         With Forms("仓库1")
                    .Open()
        End With
                With Tables("CK")
                    Select Case e.Link.Name
                        Case "库存报表"
                   .Select(0, .Cols("D3").Index)
                    End Select
                End With
    Syscmd.Filter.HideSameValues()
    MainTable = Tables("CK")
            End Select


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


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

系统的排除重复值,只能留下最前的一个

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


加好友 发短信 一级勋章
等级:超级版主 帖子:7258 积分:40773 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2012/4/20 11:13:00 [只看该作者]

第一、可否给系统的排除重复值增加选项,假如给一个逻辑值选项,true保留第一个值,false保留最后一个值,默认为true

第二、可以对指定列排序后再排除重复吧(未测试,猜想可以,楼主可以测试一下)?如果行,那就可以实现保留最后一个值或这是第一个值。


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


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

有道理,我会考虑的。


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


加好友 发短信
等级:婴狐 帖子:17 积分:192 威望:0 精华:0 注册:2012/4/20 10:19:00
  发帖心情 Post By:2012/4/20 11:43:00 [只看该作者]

第二点就是以上的代码,可是不行,还是只显示最前一个

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


加好友 发短信
等级:婴狐 帖子:17 积分:192 威望:0 精华:0 注册:2012/4/20 10:19:00
  发帖心情 Post By:2012/4/20 11:44:00 [只看该作者]

请教有没有别的思路,可否用SQL

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


加好友 发短信
等级:婴狐 帖子:17 积分:192 威望:0 精华:0 注册:2012/4/20 10:19:00
  发帖心情 Post By:2012/5/5 18:30:00 [只看该作者]

对于基本功能里的流水帐二,如果要取得每一个产品的最后一行记录做为库存报表,请教有什么方法?

我用排除重复值的方法(如下),只能留下最前面的一行,请教有没有别的思路? 

Case "库存报表"
      Tables("CK").Sort = "[_Identify] DESC"
         With Forms("仓库")
                    .Open()
        End With
                With Tables("CK")
                    Select Case e.Link.Name
                        Case "库存报表"
                   .Select(0, .Cols("D3").Index)
                    End Select
                End With
    Syscmd.Filter.HideSameValues()
    MainTable = Tables("CK")
            End Select


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


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

这样是不是楼主要的结果:


Dim sk As String
Dim Cs As List(Of String)
Cs = DataTables("例子二").GetUniqueValues("","产品")
For i As Integer = 0 To Cs.count -1   
    Dim dr As DataRow
    With DataTables("例子二")
        dr = .Find("产品 = '" & Cs(i) & "'","[_sortkey] Desc")
    End With
    sk = sk & "'" & dr("库存") & "',"
Next
output.show(sk)
Tables("例子二").filter = "库存 in (" & sk & ") "
Tables("例子二").sort = "产品"

[此贴子已经被作者于2012-5-5 20:17:18编辑过]

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


加好友 发短信
等级:小狐 帖子:360 积分:2794 威望:0 精华:0 注册:2010/4/30 18:38:00
  发帖心情 Post By:2012/5/5 20:56:00 [只看该作者]

试下这个代码

Dim cmd As New SQLCommand
cmd.CommandText = "select 列名 From 表名 where [_Identify]  In (Select max([_Identify]) From 表名 Group by 列名)"
cmd.ExecuteNonQuery()


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


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

学习了··· 


 回到顶部
总数 12 1 2 下一页