Foxtable(狐表)用户栏目专家坐堂 → [求助]找最大值问题


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

主题:[求助]找最大值问题

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


加好友 发短信
等级:七尾狐 帖子:1791 积分:12764 威望:0 精华:1 注册:2013/7/18 15:51:00
[求助]找最大值问题  发帖心情 Post By:2015/8/7 19:02:00 [只看该作者]

有一【文号】列,文本格式,其行如下:
平【2015】1号
平【2015】2号
平【2015】16号
平【2015】89号
平【2015】222号
平【2015】134号

        Dim max As String   ''记录最大文号
        Dim idx As Integer
        max = dt1.Compute("Max(文号)")
        
        MessageBox.Show(max)

如何正确找出最大文号,平【2015】222号

谢谢
[此贴子已经被作者于2015/8/7 19:28:13编辑过]

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


加好友 发短信
等级:小狐 帖子:321 积分:1916 威望:0 精华:0 注册:2014/8/24 13:36:00
  发帖心情 Post By:2015/8/7 20:01:00 [只看该作者]

这么有规则的编号方式,你可以用表达式列,把它拆成年号列 和 文件号列, 再查找

 

 


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


加好友 发短信
等级:超级版主 帖子:107680 积分:547721 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2015/8/7 20:12:00 [只看该作者]

Dim l As List(of  String) = DataTables("表A").GetValues("第二列")
Dim zuida As String
Dim t As Integer =0
For Each s As String In l
 Dim tep As String = mid(s,8)
     Dim TestStr As String
     Dim Num     As Double
     TestStr = Right$(tep, Len(tep))    
     Dim I    As Integer
     Dim J    As Integer
     Dim K    As Integer
     J = Len(TestStr)
     For I = 1 To J
         K = Asc(Mid(TestStr, I, 1))
         If K >= 48 And K <= 57 Then
             If J > I Then J = I
         End If
     Next
     If J = 0 Then
         Num = Val(TestStr)        
     ElseIf J = Len(TestStr) Then
         Num = 0
     Else
         Num = Val(Right$(TestStr, Len(TestStr) - J + 1))        
     End If 
   If Num> t Then
    t = Num
    zuida  = s
   End If
Next
msgbox(zuida)

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/8/7 20:15:00 [只看该作者]

方法一:把数字格式化,如 平【2015】001号、平【2015】002号 这样的。

 

方法二:加一列数值列,把1、2、3这些数存储起来,直接查数值列。


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


加好友 发短信
等级:狐神 帖子:4648 积分:33890 威望:0 精华:0 注册:2008/8/31 22:44:00
  发帖心情 Post By:2015/8/8 6:13:00 [只看该作者]

Dim val As Integer
Dim cmd As New SQLCommand
cmd.CommandText = "Select max(val(mid(mid(第一列,8),1,len(mid(第一列,8))-1))) Fr om {表A}"
val  = cmd.ExecuteScalar()
Output.Show("平【2015】" & val & "号")

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


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2015/8/8 7:39:00 [只看该作者]

最大
Dim t As Table = CurrentTable
Dim vals As List(Of String) = t.DataTable.GetValues("第一列","第一列 Is Not Null")
Dim max As Integer = 1
Dim str As String
For Each val As String In vals
    max = IIF(val.Split("】")(1).Split("号")(0) > max,val.Split("】")(1).Split("号")(0),max)
    If val.EndsWith(max & "号") Then
        str = val
    End If
Next
MessageBox.Show(str)
最小
Dim t As Table = CurrentTable
Dim vals As List(Of String) = t.DataTable.GetValues("第一列","第一列 Is Not Null")
Dim max As Integer = 1
Dim str As String
For Each val As String In vals
    max = IIF(val.Split("】")(1).Split("号")(0) < max,val.Split("】")(1).Split("号")(0),max)
    If val.EndsWith(max & "号") Then
        str = val
    End If
Next
MessageBox.Show(str)

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


加好友 发短信
等级:七尾狐 帖子:1791 积分:12764 威望:0 精华:1 注册:2013/7/18 15:51:00
  发帖心情 Post By:2015/8/8 9:28:00 [只看该作者]

老师们,我再描述详细一些。 文号列保存了不同类的文号 
 平[2015]7号 
平发[2015]27号 
平[2015]15号 
平[[2015]26 
平2015-77号 

 找出:平[2015]?号,这类文号的最大号。 谢谢!
[此贴子已经被作者于2015/8/8 9:46:32编辑过]

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


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

上面的方法都行啊,你把表名和列名换成你的在命令框调试啊

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


加好友 发短信
等级:七尾狐 帖子:1791 积分:12764 威望:0 精华:1 注册:2013/7/18 15:51:00
  发帖心情 Post By:2015/8/8 9:48:00 [只看该作者]

文号格式是不一样的


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


加好友 发短信
等级:七尾狐 帖子:1791 积分:12764 威望:0 精华:1 注册:2013/7/18 15:51:00
  发帖心情 Post By:2015/8/8 9:49:00 [只看该作者]

有多种不同类别的文号


 回到顶部
总数 28 1 2 3 下一页