以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]找最大值问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=72869) |
-- 作者:pcxjxjhkw -- 发布时间: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编辑过]
|
-- 作者:游 -- 发布时间:2015/8/7 20:01:00 -- 这么有规则的编号方式,你可以用表达式列,把它拆成年号列 和 文件号列, 再查找
|
-- 作者:有点蓝 -- 发布时间: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)
|
-- 作者:大红袍 -- 发布时间:2015/8/7 20:15:00 -- 方法一:把数字格式化,如 平【2015】001号、平【2015】002号 这样的。
方法二:加一列数值列,把1、2、3这些数存储起来,直接查数值列。 |
-- 作者:y2287958 -- 发布时间: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 -- 发布时间: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 -- 发布时间:2015/8/8 9:28:00 -- 老师们,我再描述详细一些。 文号列保存了不同类的文号 平[2015]7号 平发[2015]27号 平[2015]15号 平[[2015]26 平2015-77号 找出:平[2015]?号,这类文号的最大号。
谢谢!
[此贴子已经被作者于2015/8/8 9:46:32编辑过]
|
-- 作者:有点蓝 -- 发布时间:2015/8/8 9:32:00 -- 上面的方法都行啊,你把表名和列名换成你的在命令框调试啊 |
-- 作者:pcxjxjhkw -- 发布时间:2015/8/8 9:48:00 -- 文号格式是不一样的 |
-- 作者:pcxjxjhkw -- 发布时间:2015/8/8 9:49:00 -- 有多种不同类别的文号 |