以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]在分组统计表中的某列中寻找最大值所在行  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=39035)

--  作者:loongtai
--  发布时间:2013/8/14 8:54:00
--  [求助]在分组统计表中的某列中寻找最大值所在行
如题,我做了一个分组统计表,其中有两列C列(数据类型为单精度小数型)、D列,统计表是以D列进行升序排列的。想不改变现有排序的情况下,找到C列中最大值所在的行,然后对这一行的B列进行标记false。看了帮助里table的方法,find 和findrow 方法好像只能对字符型进行查找。我想用max函数 类似于在帮助《常见编号的生成方法》中有的代码:max = e.DataTable.Compute("Max(编号)","日期 >= #" & fd & "# And 日期 <= #" & ld & "# And [_Identify] <> " &e.DataRow("_Identify")) 这个是得到最大值,而我期望是能得到行号。
--  作者:Bin
--  发布时间:2013/8/14 8:57:00
--  
你好,FIND是可以排序的  http://www.foxtable.com/help/topics/0396.htm

datatables("XX").FIND("","C列 DESC")  那么就能获取C列最大的那一行了


--  作者:loongtai
--  发布时间:2013/8/14 9:16:00
--  
分组统计表,是个临时表,它也有对应的datatable?
--  作者:Bin
--  发布时间:2013/8/14 9:17:00
--  
临时表也是表啊
--  作者:Bin
--  发布时间:2013/8/14 9:18:00
--  
只是数据库里没有对应的表而已.
--  作者:loongtai
--  发布时间:2013/8/14 9:23:00
--  
哦,这样啊,又学了一点。
刚才试了下,这样语法没错误,可是得到的结果不是期望的。原因在于:find 是从datatable里找的数据,像你昨天说的它完全无视在find前所进行的筛选。

--  作者:Bin
--  发布时间:2013/8/14 9:25:00
--  
你没看我发的帮助已经2楼的使用方法提示啊.  不是让你事先排序,而是使用FIND自身的排序查找功能.
[此贴子已经被作者于2013-8-14 9:25:27编辑过]

--  作者:loongtai
--  发布时间:2013/8/14 9:32:00
--  [回复]

图片点击可在新窗口打开查看此主题相关图片如下:截图00.png
图片点击可在新窗口打开查看
我看了,也用了,从得到的结果看的确是忽略了原先的筛选,而是从所有的数据进行排序查找。后来在find里把筛选条件再加上就可以了。

图片点击可在新窗口打开查看此主题相关图片如下:截图01.png
图片点击可在新窗口打开查看

[此贴子已经被作者于2013-8-14 9:41:20编辑过]