以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]筛选出第三列的最大时间  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=148378)

--  作者:bgn
--  发布时间:2020/4/6 22:20:00
--  [求助]筛选出第三列的最大时间
请哪位老师指教,怎么筛选出最大时间(每个人对应的最后任职)?
 第一列   第二列          第三列             第四列      
王          科员            2000-01-01       
王          副主任科员    2005-01-01      
王          主任科员       2010-01-01               
李          科员            2001-01-01                                   
李          副主任科员    2006-01-01
李          主任科员      2012-01-01
李         调研员          2020-01-01
张         科员             2002-01-01
张         副主任科员     2003-01-01
刘         科员             2007-01-01

--  作者:有点蓝
--  发布时间:2020/4/6 22:44:00
--  
筛选做不到,必须使用使用SQL分组。

比如
select * from {任职情况表} as a inner join (select 第一列,max(第三列) as 第三列 from {任职情况表} group by 第一列) as b on a.第一列 =b.第一列 where a.第三列 =b.第三列

[此贴子已经被作者于2020/4/7 22:24:24编辑过]

--  作者:bgn
--  发布时间:2020/4/7 20:49:00
--  
是在SQL中输入代码,执行LQL吗?出错了。
论坛上插入图片怎么插?要网址?我电脑上呢,网址怎么弄?
[此贴子已经被作者于2020/4/7 20:53:36编辑过]

--  作者:有点蓝
--  发布时间:2020/4/7 21:41:00
--  
可以添加一个查询表,使用上面的sql:http://www.foxtable.com/webhelp/topics/2329.htm

上传图片的方法:http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=78,一次上传不成功,重复多试几次即可

--  作者:bgn
--  发布时间:2020/4/7 22:16:00
--  
链接:https://pan.baidu.com/s/1lBHdClssYFVVrBeYgeaFBA 
提取码:ljou

--  作者:有点蓝
--  发布时间:2020/4/7 22:20:00
--  
改为自己真正的列名和表名
--  作者:有点蓝
--  发布时间:2020/4/7 22:24:00
--  
少个空格:第三列 from
--  作者:bgn
--  发布时间:2020/4/9 21:42:00
--  
加空格后可以了,可以建个查询表了。但查询表出现了b.第一列和b.第三列是什么意思?我不会插图(怎么插图啊?)

另外,通过查看帖子,借鉴以下代码也解决了问题。
If e.DataRow.isnull("班级")=False Then
    e.DataRow("班级最高分")=e.DataTable.Compute("max(成绩)","班级=\'" & e.DataRow("班级") & "\'")
End If

再请教一个问题,如何只列出第二大时间或第三大时间、……等的数据呢?
[此贴子已经被作者于2020/4/9 22:02:40编辑过]

--  作者:bgn
--  发布时间:2020/4/11 19:48:00
--  
哪位老师给解答啊?怎么还多出了“b.姓名“和”b.入职时间”列?
图片点击可在新窗口打开查看此主题相关图片如下:搜狗截图20200411194237.png
图片点击可在新窗口打开查看


[此贴子已经被作者于2020/4/11 19:51:17编辑过]

--  作者:有点蓝
--  发布时间:2020/4/12 21:23:00
--  
没有办法在一条sql 列出第二大时间或第三大时间、……等的数据,这样还不如列出所有数据进行排序好了。

自己指定列名即可,比如select a.第一列,a.第二列,b.某某列,.... from .....