以文本方式查看主题 - 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里把筛选条件再加上就可以了。
[此贴子已经被作者于2013-8-14 9:41:20编辑过]
|